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