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