unsigned char x=0;
//int num is some random integer
x=num;
如何获得2个最低有效字节?
答案 0 :(得分:6)
由于你需要两个最低有效字节,你需要两个无符号字符来保存这两个字节,因为unsigned char只是一个字节长。
unsigned char x, y;
x = 0x00FF & num; // Get the first least significant byte.
y = (0xFF00 & num) >> 8; // Gets the second least significant byte and store it in the char.
答案 1 :(得分:4)
如何获得2个最低有效字节?
int least = (signed)((unsigned)num & ~((~0U)<<(2*CHAR_BIT)));
CHAR_BIT
是一个预处理器常量,等于一个字节中的位数,最小值为8。
我使用unsigned
个整数类型,因为有点笨拙的signed
类型充满了危险。
由于无符号类型的模运算,-1U
为全位-1,与~0U
相同。