| Автор |
Съобщение |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2664 Местоположение: София / Велико Търново
|
 Re: Тема за бързи и тъпи въпроси
е, че то не може ли да се настрои компилаторът да не дава warning Така остава впечатление, че има връзка със семантиката.
|
| Нед Сеп 12, 2021 12:41 pm |
|
 |
|
CVT
Ранг: Минаващ
Регистриран на: Вто Авг 17, 2021 10:54 am Мнения: 9
|
 Re: Тема за бързи и тъпи въпроси
Напиши в Гугъл: "bit shifting integer promotion".
|
| Нед Сеп 12, 2021 2:21 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30929 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
ако това е keil въобще не опира само до warning-а ами компилатора ще работи с 16 битови числа, и е силно желателно да кастваш в такива случаи. Има настройка в микровижъна да не промотва подобни операции, това важи не само за шифтване но и събиране на два чара примерно https://www.keil.com/support/docs/1754.asp
|
| Нед Сеп 12, 2021 2:39 pm |
|
 |
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 2:21 am Мнения: 12947 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
Изясни ми се. Мерси. Отива в графа "задължителни".
|
| Нед Сеп 12, 2021 4:47 pm |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2303
|
 Re: Тема за бързи и тъпи въпроси
Type cast има смисъл ако b e със знак. Ако е без знак едва ли има компилатор, който ще се сърди за това.
п.п. Ако е със знак, така или иначе не е редно да правиш местене.
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!
|
| Нед Сеп 12, 2021 5:46 pm |
|
 |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2664 Местоположение: София / Велико Търново
|
 Re: Тема за бързи и тъпи въпроси
Ако е със знак няма ли да премести само битовете без знаковия ?
|
| Нед Сеп 12, 2021 8:11 pm |
|
 |
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 2:21 am Мнения: 12947 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
В случая не става въпрос за съобщения на компилатора. Както съм споменал и по-напред, той не се сърди и в двата случая. Както и да е. За мен въпросът е изяснен.
|
| Нед Сеп 12, 2021 9:00 pm |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2303
|
 Re: Тема за бързи и тъпи въпроси
Някъде из стандартите пишеше, че има неопределеност при дадени условия. Освен "програмиста" няма нужда от още един източник на ентропия  . Принципът е: за аритметика - аритметични операции, за логика - логически. Повечето съвременни компилатори ще направят необходимото, за да генерират оптимален код. п.п. @ slav4o.com
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!
|
| Нед Сеп 12, 2021 9:08 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30929 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
Ами не винаги генерира оптимален код, особенно кейла.
|
| Пон Сеп 13, 2021 8:04 am |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
А число с плаваща запетая редно ли е да се мести или първо го кастваш в int, след това местиш и после връщаш обратно в float?
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Пон Сеп 13, 2021 8:34 am |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2303
|
 Re: Тема за бързи и тъпи въпроси
Знам ли? Ако го разделиш на 2 в конкретния случай всякакви "упражнения" по cast-ване стават излишни.
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!
|
| Пон Сеп 13, 2021 8:45 am |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
В случая делиш на 2 експонентата и получаваш коренквадратен.
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Пон Сеп 13, 2021 11:29 am |
|
 |
|
syscop
Ранг: Форумен бог
Регистриран на: Пет Юни 03, 2005 9:39 pm Мнения: 2303
|
 Re: Тема за бързи и тъпи въпроси
Местенето надясно (i >> 1) да стане деление на две - (i / 2). Така няма нужда от cast-ване.
_________________ Определянето стойността на дадена величина се нарича ИЗМЕРВАНЕ! Опонентът се оборва с ФАКТИ, а не с ЕПИТЕТИ!
|
| Пон Сеп 13, 2021 11:36 am |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4950 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
 Re: Тема за бързи и тъпи въпроси
И за чий ти е това упражнение? Преди 20 години може би е имало файда да семправят подобни гимнастики, но сега повечето компилатори оеавят доста добри оптимизации. Premature optimization iz the root of all evil -това го е казал Кнут, пък на него може да се вярва....
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Пон Сеп 13, 2021 11:41 am |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
Всичко тръгна от това, че почнах да се заяждам с syscop, който каза: Аз по принцип съм съгласен с него, но винаги има изкючения. За това и дадох примера където местят float, който има не само знак, ами и екпонента. В момента това упражнение е безмислено, сега като има SIMD инструкции за rsqrt. Повече информация: The Amazing Speed of Quake III (Е01): https://www.youtube.com/watch?v=uCv5VRf8op0The Amazing Speed of Quake III (Е02): https://www.youtube.com/watch?v=Fm0vygzVXeE
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Пон Сеп 13, 2021 4:23 pm |
|
|