/**
 * {@link <a href=
 * "https://[Log in to view URL]"
 * target="_blank">Operatori sui bit</a>}
 * 
 * @author itammb ( Italia Massimiliano Buscati )
 * @version JDK 1.15
 *
 */
class Main {
    	public static void applayBitwiseOperator() {
		int a = 5, b = 7;

		// and è codificato dal simbolo &
		// 0101b & 0111b = 0101b = 5d
		System.out.println("(" + a + " & " + b + ") = " + (a & b));

		// or è codificato dal simbolo |
		// 0101b | 0111b = 0111b = 7d
		System.out.println("( " + a + " | " + b + " ) = " + (a | b));

		// xor è codificato dal simbolo ^
		// 0101b ^ 0111b = 0010b = 2d
		System.out.println("( " + a + " ^ " + b + ") = " + (a ^ b));

		// il complemento è codificato dal simbolo ~
		// 5d = 0101b = ~0101b = 1010b = -6d
		System.out.println("~" + a + " = " + ~a);
	}

	public static void applayBitwiseOperatorAndAssignment() {
		int a = 5, b = 7;

		// abbreviazione di a = a & b
		a &= b;
		System.out.println(a + " &= " + b + " -> " + a);
	}

	public static void applyShiftOperator() {
		int a = 2;

		// left shift di 2 bit
		// 2d = 10b -> 2d << 2 = 1000b = 8d
		System.out.println(a + " << 2 -> " + (a << 2));

		// 2right shift di 2 bit
		// 2d = 10b -> 2d >> 2 = 0b = 0d
		System.out.println(a + " >> 2 -> " + (a >> 2));
	}

    public static void main(String[] args) {
		// Unit test - applica un operatore di manipolazione sui bit [ &, |, ^, ~ ]
		applayBitwiseOperator();

		System.out.println();

		// Unit test - applica un operatore di manipolazione sui bit [ &= ] e assegna il
		// risultato a una variabile
		applayBitwiseOperatorAndAssignment();

		System.out.println();

		// Unit test - applica un operatore di rotazione sui bit [ >>, << ]
		applyShiftOperator();
    }
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: