我有不同大小的 BitArray,我想在十六进制字符串中进行转换。
我试图将 BitArray 转换为 byte[] ,但它没有给我正确的格式。 ( Converting a boolean array into a hexadecimal number )

例如,BitArray 为 12,我希望字符串为 A8C(3 六进制,因为 12 位)
谢谢

最佳答案

你可以直接试试

  StringBuilder sb = new StringBuilder(bits.Length / 4);

  for (int i = 0; i < bits.Length; i += 4) {
    int v = (bits[i] ? 8 : 0) |
            (bits[i + 1] ? 4 : 0) |
            (bits[i + 2] ? 2 : 0) |
            (bits[i + 3] ? 1 : 0);

    sb.Append(v.ToString("x1")); // Or "X1"
  }

  String result = sb.ToString();

关于C# - 位数组到十六进制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37162727/

10-13 08:00