如何创建包含64位数组的字节数组以及如何将这些位转换为十六进制值?

时间:2016-11-11 13:26:49

标签: c#

我想创建包含64位的字节数组,如何获得特定位值表示第17位,以及如何获得该字节索引的十六进制值?我确实喜欢这个,这是正确的吗?

byte[] _byte = new byte[8];
var bit17=((((_byte[2]>>1)& 0x01);
string hex=BitConverter.ToString(_byte,2,4).Replace("-", string.Empty)

2 个答案:

答案 0 :(得分:1)

您可以使用BitArray

var bits = new BitArray(64);

bool bit17 = bits[17];

我不确定你那个位的"十六进制值是什么意思" - 它将是0或1,因为它有点。

如果你有一个字节的索引(在0到7之间),你可以将它转换为十六进制字符串,如下所示:

int bitNumber = 7; // For example.
byte value = (byte)(1 << bitNumber);
string hex = value.ToString("x");
Console.WriteLine(hex);

答案 1 :(得分:1)

您可以使用ToString()方法。

byte[] arr= new byte[8];
int index = 0; 
string hexValue = arr[index].ToString("X");