Opět mám záludnou otázku. Potřeboval bych převést 32 bitový integer na dva znaky, resp. byty, které bych uložil do pole. Hledal jsem jak blázen a našel jsem jen ztrátovou konverzi pomocí System::Convert::ToByte() a pak nějaký šílený pokus s ukazateli. Asi mi nezbude nic jiného, než to naprogramovat pomocí ukazatelů. Není ještě nějaká jiná verze? Díky
Fórum › C / C++
Převod Int do Byte (unsigned char)
32 bitove cislo preves na dva znaky? :) Nic v zlom ale to sa neda bez toho aby si neodrezal cast toho cisla. Znaky (vnimaj tie klasike char ziaden UNICODE) su 8 bitove.S toho vypliva ze 32 bitove cislo sa sklada vlastne zo 4 znakov (4*8 = 32).
//konvertovanie
unsigned char* vystup;
int cislo = 1;
vystup = (char*)(&cislo);
//a mas to.Znaky su vo vystup[0] vystup[1] vystup[2] a vystup[3];
To sn3d: Sorry, byl jsem zmatený z toho, jak jsem hledal na msdn. Mělo by to být 16 bit integer z CRC16 - proto 2 znaky. Tohle přetypování mě nenapadlo a přesně to jsem potřeboval. Díky moc!
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 42 hostů
Podobná vlákna
Převod int na hex byte — založil cniry
Sscanf - uložení do int hodnoty do unsigned char — založil hlucheucho
Výpočet float a převod na unsigned int — založil hlucheucho
(C++) Převod const unsigned char * na string — založil richard.zavodny
Prevod pole char na int — založil Jurko
Moderátoři diskuze