作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能是个愚蠢的问题,但我似乎找不到简单的答案。
我正在读取一个 64 位(8 字节)long
值,然后尝试使用 BigInteger.testBit
来查看第 63 位是否是设置,因为它被用作标志。
long value = 0x4000863; //This value is actually read from a file
Long.toBinaryString(value) = 100000000000000100001100011
BigInteger test = new BigInteger(Long.toString(value));
if (test.testBit(63)) {
//yay
}
else {
//boo
}
上面的代码是我目前正在尝试的,它说第 63 位没有设置。由于它的存储时间很长,我认为我不必填充该值,还是我完全做错了什么?
如有任何意见或建议,我们将不胜感激。
谢谢。
最佳答案
你数错了:
public void test() {
// Binary - 100000000000000100001100011
// ^ This is bit 26
long value = 0x4000863;
// Binary - 1000000000000000000000000000000000000000000000000000000000000000
// ^ THIS is bit 63
long bigger = 0x8000000000000000L;
BigInteger test = new BigInteger(Long.toString(value));
System.out.println("L:" + Long.toBinaryString(value) + "\r\nB:" + test.toString(2) + "\r\nB63:" + test.testBit(63));
test = new BigInteger(Long.toString(bigger));
System.out.println("L:" + Long.toBinaryString(bigger) + "\r\nB:" + test.toString(2) + "\r\nB63:" + test.testBit(63));
}
关于Java BigInteger testBit 64 位长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28085233/
我有一个 QByteArray,我正在从中提取一个十六进制数,我想将它分解成单独的位。这样做之后,我想对特定位进行位测试,以检查它是否真的可以发送消息。 这是我现在的代码: if(ID == 6529
这可能是个愚蠢的问题,但我似乎找不到简单的答案。 我正在读取一个 64 位(8 字节)long 值,然后尝试使用 BigInteger.testBit 来查看第 63 位是否是设置,因为它被用作标志。
是否 LargeInteger 相当于 BigInteger 's testBit ? 如果不是,怎么可能testBit在 LargeInteger 上执行? 我还没有必要的技能来复制((this &
我是一名优秀的程序员,十分优秀!