我想将一个整数的最低两个字节打包成另一个整数,卡在此
for ( int i = 0; i < 8 ; i ++){
if ((bitmask & ( 1 << i)))
result |= 1 >> i;
}
答案 0 :(得分:4)
与Endian无关的解决方案:
x = ((y >> 0) & 0xFF) |
((y >> 8) & 0xFF);
答案 1 :(得分:1)
如果我理解正确,那么应该有足够的解决方案:
another_integer = first_integer & 0xFFFF // which is 65536, which is 2^16 so 0000000011111111 binary (for 4 byte integer)
通过使用简单的AND掩码,您可以将first_integer的两个较低字节的值分配给another_integer:
0101110011101010
0000000011111111 AND
----------------
0000000011101010