[OT]C CO tim chtel basnik rici?
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Středa Prosinec 31 19:43:01 CET 2014
Jestli nebude na vine nejaka option prekladace, ze se provadi implicitne
posun aritmeeticky nebo logicky...
Ten muj pokus dal 0 v obou pripadech a int je 32b - cili evidentne
provadi posun logicky.
Kazdopadne tyhle chytaky asi zaslouzi v C-cku nebyt liny napsat
0xFFFFFFFFU a je to jasne.
Dne 31. 12. 2014 v 19:07 František Burian napsal(a):
> "přičemž se doplňuje nulami" je právě ta chyba. Pokud 0xFFFFFFFF je
> int pak je signed a posunuje se znamenko takže by měl být výsledek -1.
> pokud bude uint měl by být 0 v obou případech.
>
> ---------- Původní zpráva ----------
> Od: Pavel Hudeček <edizon na seznam.cz>
> Komu: HW-news <hw-list na list.hw.cz>
> Datum: 31. 12. 2014 18:45:59
> Předmět: Re: [OT]C CO tim chtel basnik rici?
>
>
> To je nějaký divný. Zadání je jasné:
>
> Vzít 32b int plný jedniček a 32x posunout, přičemž se doplňuje nulami.
>
> - Proč by se to mělo přeložit jinak, než pro posun o 1, 2, 17,
> nebo třeba 35 bitů?
> - Proč by mělo (není-li chyba v překladači) vycházet něco jiného
> než 0?
>
> PH
>
> Od: Jan Waclawek
> To zavisi od velkosti int. Ak je viac ako 32 bitov, oba pripady su
> ekvivalentne, ak menej alebo rovne, obidva su nedefinovane, takze
> prekladac ma plne pravo vygenerovat lubovolny kod, ktory moze
> trebars aj spadnut. Rad by som, ale nemam teraz moznost citovat z
> normy.
>
> Akurat ze gcc sa bude v prvom pripade snazit vygenerovat nejaky
> kod, co moze dopadnut vselijako v zavoslosti od konkretneho
> procesora; v druhom tam asi da v ramci jednoduchosti asi
> 0xFFFFFFFF, t.j. akoby shift ani nenastal; ale moze to byt
> lubovolne inak.
>
> >>>
> Na C alebo skor gcc mam tazke srdce koli inym "vlastnostiam"
> Len tak schvalne aky vysledok bude podla vas v tychto prikladoch:
>
> uint32_t addr_rem, mask;
> addr_rem = 32;
> mask = 0xFFFFFFFF >> addr_rem;
>
> A aky v pripade:
>
> mask = 0xFFFFFFFF >> 32;
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20141231/9b04f9eb/attachment.html>
Další informace o konferenci Hw-list