用Java检查字节数组中的各个位?

前端之家收集整理的这篇文章主要介绍了用Java检查字节数组中的各个位?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以说我有一个字节数组,并且我有一个函数来检查字节数组的第n个最低有效位索引是1还是0.如果该位是1则返回true,如果该位则返回false字节数组的最低有效位定义为字节数组第0个索引中的最后一个有效位,字节数组的最高有效位定义为(字节数组中的最高有效位). length – 1)字节数组的索引.

例如,

byte[] myArray = new byte[2];
byte[0] = 0b01111111;
byte[1] = 0b00001010;

呼叫:

myFunction(0) = true;
myFunction(1) = true;
myFunction(7) = false;
myFunction(8) = false;
myFunction(9) = true;
myFunction(10) = false;
myFunction(11) = true;

做这个的最好方式是什么?

谢谢!

解决方法

您可以使用此方法
public boolean isSet(byte[] arr,int bit) {
    int index = bit / 8;  // Get the index of the array for the byte with this bit
    int bitPosition = bit % 8;  // Position of this bit in a byte

    return (arr[index] >> bitPosition & 1) == 1;
}

bit%8是相对于字节的位位置.arr [index]>> bit%8将索引处的位移动到位0位置.

原文链接:https://www.f2er.com/java/127153.html

猜你在找的Java相关文章