LINUX.ORG.RU

[c++] unsigned short to unsigned char

 


0

1

Что-то туплю и никак не могу понять, как правильно преобразовать unsigned short в unsigned char.

unsigned short содержит в себе два байта 0x41 0xb3. Если пытаюсь преобразовать таким образом:

unsigned short crc = ccc->Calc_CRC16CCNET(tcmd, sizeof(tcmd));
unsigned char crc_tmp = (unsigned char)crc;

То записывается только последний байт 0xb3. Как правильно преобразовать?

★★

Последнее исправление: SaBo (всего исправлений: 1)

А что тебя, собственно, не устраивает?

unC0Rr ★★★★★
()

[cod=c] unsigned short num = 0x5ee5; unsigned char hi, lo; hi = num >> 8; lo = num; printf(«%x, %x, %x\n», num, hi, lo); [/code] не?

anonymous
()

чар же однобайтный, не? тогда чего тебя не устравивает? либо

unsigned short crc = ccc->Calc_CRC16CCNET(tcmd, sizeof(tcmd));
unsigned char crc_tmp[2];
crc_tmp[0] = (unsigned char)(crc >> 8);
crc_tmp[1] = (unsigned char)crc;

marvin_yorke ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.