我正在寻找一种以字节为单位存储整数的好方法。
情况如下: 我有两个整数,值1是“1857”(11位),值2是“14”(4位)和2个字节(16位)。 我正在寻找的是将2个整数存储在2个字节中。这意味着削减第一个整数,在第一个字节中放置8位,其余在第二个字节中加上第二个整数。我还需要让他们回到一起。
有没有办法或.net类来做到这一点? 我找到了BitConverter类,但那不是我想要的,因为这个类只将一个整数转换为一个完整的字节数组。
答案 0 :(得分:3)
您可以使用位运算符:按位和(&),或(|),左移(<<<<<<<">>):
int value1 = 1857;
int value2 = 14;
int result = value1 | (value2 << 11);
要获得原始值,您必须反转:
int result1 = result & 0x7ff; // 1857
int result2 = result >> 11; // 14