BigInteger 上的二进制逻辑运算
BigInteger 也支持 Number
类型可用的二进制逻辑运算。与所有操作一样,它们通过调用方法来实现。
二进制或:
BigInteger val1 = new BigInteger("10");
BigInteger val2 = new BigInteger("9");
val1.or(val2);
输出:11(相当于
10 | 9
)
二进制和:
BigInteger val1 = new BigInteger("10");
BigInteger val2 = new BigInteger("9");
val1.and(val2);
输出:8(相当于
10 & 9
)
二进制 Xor:
BigInteger val1 = new BigInteger("10");
BigInteger val2 = new BigInteger("9");
val1.xor(val2);
输出:3(相当于
10 ^ 9
)
RightShift:
BigInteger val1 = new BigInteger("10");
val1.shiftRight(1); // the argument be an Integer
输出:5(相当于
10 >> 1
)
左移:
BigInteger val1 = new BigInteger("10");
val1.shiftLeft(1); // here parameter should be Integer
输出:20(相当于
10 << 1
)
二进制反转(非):
BigInteger val1 = new BigInteger("10");
val1.not();
输出:5
NAND(和非): *
BigInteger val1 = new BigInteger("10");
BigInteger val2 = new BigInteger("9");
val1.andNot(val2);
输出:7