我有一个字节,我有一个函数,它检查字节的第n位索引是1还是0。如果位为1,则函数返回true,如果位为0,则返回false。你好,谢谢。
wfauudbj1#
你需要用一个二进制掩码来 * 和 * 你的值,其中要测试的位被设置为1:
boolean test(int value) { return (value & (1<<N)) != 0; }
这里,1<<N构造这样的掩码,其中位N被设置为1,并且其他位被设置为0。否则,你可以手工制作你的面具。
1<<N
zzoitvuj2#
这个函数会做你需要的。第一个参数是字节,您要检查位的存在。第二个参数是要检查的位的位置。
public static boolean isBitSetInByte(byte Byte, int position) { return ((Byte << (~position & 31)) < 0); }
例如:
boolean isBitEightSet = isBitSetInByte((byte) 0xF4, 8);
这将返回真,因为字节F4中的位8被设置。
2条答案
按热度按时间wfauudbj1#
你需要用一个二进制掩码来 * 和 * 你的值,其中要测试的位被设置为1:
这里,
1<<N
构造这样的掩码,其中位N被设置为1,并且其他位被设置为0。否则,你可以手工制作你的面具。zzoitvuj2#
这个函数会做你需要的。第一个参数是字节,您要检查位的存在。第二个参数是要检查的位的位置。
例如:
这将返回真,因为字节F4中的位8被设置。