我想创建包含64位的字节数组,如何获得特定位值表示第17位,以及如何获得该字节索引的十六进制值?我确实喜欢这个,这是正确的吗?
byte[] _byte = new byte[8];
var bit17=((((_byte[2]>>1)& 0x01);
string hex=BitConverter.ToString(_byte,2,4).Replace("-", string.Empty)
答案 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");