我试图将一个转换int
为bytes
三个代表int
(大端).
我确定它与逐位和位移有关.但我不知道如何去做.
例如:
int myInt; // some code byte b1, b2 , b3; // b1 is most significant, then b2 then b3.
*注意,我知道int是4个字节,三个字节有可能过度/不足.
要获得最不重要的字节:
b3 = myInt & 0xFF;
第二个最低有效字节:
b2 = (myInt >> 8) & 0xFF;
第三个最低有效字节:
b1 = (myInt >> 16) & 0xFF;
说明:
对0xFF(二进制11111111)的值进行按位AND运算将返回该数字中的最低有效8位(位0到7).将数字向右移动8次将位8到15放入位0到7,因此与0xFF进行AND运算将返回第二个字节.类似地,将数字向右移动16次将位16到23置于位0到7中,因此与0xFF进行AND运算会返回第3个字节.