获取字节数组 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;
}
如果我创建一个随机 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;
}