C, int --> 2x char
Miroslav Draxal
evik na volny.cz
Čtvrtek Květen 23 14:04:24 CEST 2013
Tuhle potřebu jsem zatím neměl.
Můj problém je v tom, že od mala jsem šel v asm už od atarka. No a teď když
jedu v C ( je to veliký pomocník) tak se kolikrát zastavím na malichernosti.
Viz předchozí problém, kde jsem to mohl vyřešit jednoduše přes rotaci ) ale
to já né, protože to vidím v hlavě, jak jsou to ve skutečnosti pouze dva
řádky v asm.
MOVFF Z, Y
MOVFF Z+1, Z
Ale prostě si neumím pomoct. A nechce se mi do toho vstupovat přes asm...
když C tak čistě.
V C jsem stále začátečník a dlouho budu (aspoň si to o sobě myslím) Míra
From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
Behalf Of Jaroslav Buchta
Sent: Thursday, May 23, 2013 1:49 PM
To: HW-news
Subject: Re: C, int --> 2x char
Kdyz jsme u tech chutovek, jak delate prenos z promenne typu unsigned, ktera
ovsem obsahuje hodnotu se znamenkem, do typu int?
cili napr:
unsigned u = 65535;
int i;
i = <neco> u;
aby v i bylo -1 ???
Ja zatim nechtel nikdy badat a na jistotu mi prijde pretypovani pres
ukazatel:
i = *((int*)&u)
Ale mozna to jde primocareji a hlavne takto asi prekladac donutim umistit
promennou do pameti (coz ale vetsinou je, protoze to vesmes pouzivam na
vyzobavani hodnot z nejaky struktur pri komunikaci).
A samozrejme stejny problem je i obracene ktery resim stejne.
A jak to definuje norma? Nejak se mi zda, ze to ruzne prekladace resily
ruzne, pokud napr. napisu primo i = u; nebo i = (int)u; ...
Dne 23. 5. 2013 13:38, Miroslav Draxal napsal(a):
No jasně, já si stále nějak neumí do hlavy vštípit to přetypování. Že se s
tím dají dělat psí kusy. Míra
From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
Behalf Of Jaroslav Buchta
Sent: Thursday, May 23, 2013 1:33 PM
To: HW-news
Subject: Re: C, int --> 2x char
x = *(((char *)&z)+1)
y = *(((char *)&z)+0)
u Little Endian
nektere zavorky jsou asi zbytecne
A rozumny prekladac to udela stejne kdyz je to zapsane pres posuvy po
optimalizaci.
Dne 23. 5. 2013 13:28, Miroslav Draxal napsal(a):
Dobrý den,
int z= 0x1234;
char x,y
Jak jednoduše dostat do char x hodnotu HI bytu z int z (tj. 0x12) a do y
dostat LO ze z (tj. 0x34)
Posuvem ano, přes pointery lze? - jenom mě to tak napadlo a neumím najít
řešení. Míra
__________ Informace od ESET NOD32 Antivirus, verze databaze 8364 (20130523)
__________
Tuto zpravu proveril ESET NOD32 Antivirus.
http://www.eset.cz
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
__________ Informace od ESET NOD32 Antivirus, verze databaze 8364 (20130523)
__________
Tuto zpravu proveril ESET NOD32 Antivirus.
http://www.eset.cz
__________ Informace od ESET NOD32 Antivirus, verze databaze 8364 (20130523)
__________
Tuto zpravu proveril ESET NOD32 Antivirus.
http://www.eset.cz
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
__________ Informace od ESET NOD32 Antivirus, verze databaze 8364 (20130523)
__________
Tuto zpravu proveril ESET NOD32 Antivirus.
http://www.eset.cz
__________ Informace od ESET NOD32 Antivirus, verze databaze 8365 (20130523)
__________
Tuto zpravu proveril ESET NOD32 Antivirus.
http://www.eset.cz
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130523/2a391048/attachment.htm>
Další informace o konferenci Hw-list