Bitwise operations

BigInteger Bitwise Operations

import java.math.BigInteger;

public class BigIntegerBitwiseDemo {
    public static void main(String[] args) {
        BigInteger a = new BigInteger("60"); // Binary: 0011 1100
        BigInteger b = new BigInteger("13"); // Binary: 0000 1101

        System.out.println("a = " + a + " (" + a.toString(2) + ")");
        System.out.println("b = " + b + " (" + b.toString(2) + ")");

        // AND
        System.out.println("\na AND b: " + a.and(b) + " (" + a.and(b).toString(2) + ")");

        // OR
        System.out.println("a OR b: " + a.or(b) + " (" + a.or(b).toString(2) + ")");

        // XOR
        System.out.println("a XOR b: " + a.xor(b) + " (" + a.xor(b).toString(2) + ")");

        // NOT
        System.out.println("NOT a: " + a.not()); // Inverts all bits (infinite-length signed)

        // Shift Left
        System.out.println("\na << 2: " + a.shiftLeft(2) + " (" + a.shiftLeft(2).toString(2) + ")");

        // Shift Right
        System.out.println("a >> 2: " + a.shiftRight(2) + " (" + a.shiftRight(2).toString(2) + ")");

        // Set Bit
        System.out.println("\nSet bit 0 in a: " + a.setBit(0) + " (" + a.setBit(0).toString(2) + ")");

        // Clear Bit
        System.out.println("Clear bit 2 in a: " + a.clearBit(2) + " (" + a.clearBit(2).toString(2) + ")");

        // Flip Bit
        System.out.println("Flip bit 4 in a: " + a.flipBit(4) + " (" + a.flipBit(4).toString(2) + ")");

        // Test Bit
        System.out.println("\nIs bit 3 in a set? " + a.testBit(3));

        // Bit Count
        System.out.println("Number of set bits in a: " + a.bitCount());

        // Bit Length
        System.out.println("Bit length of a: " + a.bitLength());
    }
}
Scroll to Top