C# 如何以字节为单位高效地存储整数?

C# 如何以字节为单位高效地存储整数?,c#,arrays,integer,byte,bitconverter,C#,Arrays,Integer,Byte,Bitconverter,我正在寻找一种以字节为单位存储整数的好方法 情况如下: 我有两个整数,值1是“1857”(11位),值2是“14”(4位)和2个字节(16位)。 我要找的是将2个整数存储在2个字节中。这意味着剪切第一个整数,在第一个字节中放入8位,其余的加上第二个字节中的第二个整数。我还需要让他们重归于好 有没有一种方法或.net类可以做到这一点? 我找到了BitConverter类,但这不是我要找的,因为该类仅将一个整数转换为全字节数组。可以使用位运算符:按位and(&),或(|),并向左移位(): 您可以使

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

情况如下: 我有两个整数,值1是“1857”(11位),值2是“14”(4位)和2个字节(16位)。 我要找的是将2个整数存储在2个字节中。这意味着剪切第一个整数,在第一个字节中放入8位,其余的加上第二个字节中的第二个整数。我还需要让他们重归于好

有没有一种方法或.net类可以做到这一点?
我找到了BitConverter类,但这不是我要找的,因为该类仅将一个整数转换为全字节数组。

可以使用位运算符:按位and(&),或(|),并向左移位():


您可以使用位运算符:按位and(&),或(|),并向左移位():


您可以使用位运算符:按位and(&),或(|),并向左移位():


您可以使用位运算符:按位and(&),或(|),并向左移位():

int value1 = 1857;
int value2 = 14;

int result = value1 | (value2 << 11);
int result1 = result & 0x7ff; // 1857
int result2 = result >> 11; // 14