如何从c中的整数中得到2个最低有效字节?

时间:2014-12-04 00:14:39

标签: c

unsigned char x=0;
//int num is some random integer
x=num;

如何获得2个最低有效字节?

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相同。