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