如何有效地以字节存储整数?

时间:2014-02-06 14:53:24

标签: c# arrays integer byte bitconverter

我正在寻找一种以字节为单位存储整数的好方法。

情况如下: 我有两个整数,值1是“1857”(11位),值2是“14”(4位)和2个字节(16位)。 我正在寻找的是将2个整数存储在2个字节中。这意味着削减第一个整数,在第一个字节中放置8位,其余在第二个字节中加上第二个整数。我还需要让他们回到一起。

有没有办法或.net类来做到这一点? 我找到了BitConverter类,但那不是我想要的,因为这个类只将一个整数转换为一个完整的字节数组。

1 个答案:

答案 0 :(得分:3)

您可以使用位运算符:按位和(&),或(|),左移(<<<<<<<">>):

int value1 = 1857;
int value2 = 14;

int result = value1 | (value2 << 11);

要获得原始值,您必须反转:

int result1 = result & 0x7ff; // 1857
int result2 = result >> 11; // 14