android 如何检查字节java中是否设置了bit

aiqt4smr  于 2023-05-12  发布在  Android
关注(0)|答案(2)|浏览(145)

我有一个字节,我有一个函数,它检查字节的第n位索引是1还是0。如果位为1,则函数返回true,如果位为0,则返回false。
你好,谢谢。

wfauudbj

wfauudbj1#

你需要用一个二进制掩码来 * 和 * 你的值,其中要测试的位被设置为1:

boolean test(int value) {
     return (value & (1<<N)) != 0;
}

这里,1<<N构造这样的掩码,其中位N被设置为1,并且其他位被设置为0。否则,你可以手工制作你的面具。

zzoitvuj

zzoitvuj2#

这个函数会做你需要的。第一个参数是字节,您要检查位的存在。第二个参数是要检查的位的位置。

public static boolean isBitSetInByte(byte Byte, int position) {
    return ((Byte << (~position & 31)) < 0);
}

例如:

boolean isBitEightSet = isBitSetInByte((byte) 0xF4, 8);

这将返回真,因为字节F4中的位8被设置。

相关问题