public class OperatorDemo {

	public static void shiftDemo(int n) {
		System.out.println("Entering shiftDemo");
		System.out.println("n       = " + Integer.toBinaryString(n));
		System.out.println("n << 2  = " + Integer.toBinaryString(n << 2));
		System.out.println("n >> 2  = " + Integer.toBinaryString(n >> 2));
		System.out.println("n >>> 1 = " + Integer.toBinaryString(n >>> 1));

	}


    public static void bitwiseDemo(int n, int mask) {
		System.out.println("Entering bitwiseDemo");
		System.out.println("n       = " + Integer.toBinaryString(n));
		System.out.println("~n      = " + Integer.toBinaryString(~n));
		System.out.println("n | " + mask + "  = " + Integer.toBinaryString(n | mask));
		System.out.println("n & " + mask + "  = " + Integer.toBinaryString(n & mask));
		System.out.println("n ^ " + mask + "  = " + Integer.toBinaryString(n ^ mask));
	}

	public static void main(String[] args) {
		// warning, leading 0's are not printed
		shiftDemo(-42);
		bitwiseDemo(30, 10);

	}


}