检查64位BigInteger是否包含Java中的所有非零高32位?

时间:2012-03-01 11:27:41

标签: java math bit-manipulation biginteger bit

任何人都知道如何做到这一点 -

检查64位BigInteger是否包含Java中所有非零的高32位?

谢谢!

1 个答案:

答案 0 :(得分:6)

怎么样:

private static final BigInteger MASK = BigInteger.valueOf(0xffffffff)
                                                 .shiftLeft(32);

...

public static boolean top32BitsSet(BigInteger value) {
    return value.and(MASK).equals(MASK);
}