获取字节数组 X 位置位的方法

Way to get the bit in position X of a byte array

如果我创建一个随机 byte[],例如:

byte[] b = new byte[16];
new Random().nextBytes(b);

这意味着我有 16 个字节或 128 位数据,对吗?

有没有办法读取位置 X 的位,以便了解它是 0 还是 1?

这个问题与 an existing question 类似,但不一样,后者询问如何在一个字节中获取一个位。但是我想要一个字节数组,byte[].

在 java 中,您不能直接访问位。您需要使用按位运算符。

所以你可以比较这个字节和另一个你已经知道其位值的字节。

That means that I have 16 bytes or 128 bits of data, right?

没错!

您可以像这样在字节数组中获取一些信息:

int readBit(byte[] b, int x) {
   int i = x / 8;
   int j = x % 8;
   return (b[i] >> j) & 1;
}