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)
二进制异或:
BigInteger val1 = new BigInteger("10"); BigInteger val2 = new BigInteger("9"); val1.xor(val2);
输出:3(相当于10 ^ 9)
右移:
BigInteger val1 = new BigInteger("10"); val1.shiftRight(1); // 参数为整数
输出:5(相当于10 >> 1)
左移:
BigInteger val1 = new BigInteger("10"); val1.shiftLeft(1); // 这里的参数应该是整数
输出: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