JavaBigInteger上的二进制逻辑运算
示例
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