OT odcitanie v C
Miroslav Mraz
mraz na seznam.cz
Čtvrtek Duben 24 13:06:21 CEST 2014
I když udělám závorky, výsledek 0xE2 je opravdu dost neočekávaný. Řádek
if ( ((uint16_t)l - h) < 3 ) result |= 2; je asi ten problém. Máte
nějaké vysvětlení ?
Mrazík
On 04/24/2014 12:25 PM, Jan Waclawek wrote:
> Rozne prekladace sa vsetky musia spravat podla normy, ta pripusta
> niektore implementacne definovane polozky. Relevantny rozdiel pre
> tento konkretny priklad je v implementacne definovanej sirke int.
> Predpokladajme, ze je to 32 bitov. Pred aritmetickymi operaciami
> (vratane toho porovnania) sa robia "usual conversions", co zhruba
> znamena, ze ak su operandy "mensie alebo rovne" ako int (int vie
> reprezentovat vsetky ich hodnoty), tak sa konvertuju na int; ak nie,
> konvertuju sa na vacsi z tych dvoch operandov. Toto by malo stacit na
> riesenie ulohy, ale ano, to bolenie hlavy zostava... ;-) wek
Další informace o konferenci Hw-list