c# - 位解析8字节数组

时间:2013-07-22 16:40:18

标签: c# parsing bit

字节:240 255 255 9 0 224 9 0

f0 ff ff 09 00 E0 09 00

Little endian unsigned int 64翻译:

00 09 E0 00 09 ff ff f0

int value1 = 0-19 bits  
int value2 = 20-39 bits 
int value3 = 40-59 bits
int value4 = 60-62 bits 
bool value5 = 63 bit

value1 = (uint)(byteArray[0] | byteArray[1] << 8 | (byteArray[2] << 16)) & 0x14;

我这样做是否正确?我一直得到0的值,但应该是158。

1 个答案:

答案 0 :(得分:1)

计算中的最后一项操作是& 0x14。这将对0001 0100的二进制值进行逐位处理。你正在寻找前20位,所以你的面具应该是0xfffff