Zielony Smok - logo witryny

Sprawdzanie parzystości Java

Czasami zachodzi potrzeba sprawdzenia parzystości liczby np. będącej wynikiem obliczenia. Oznaczmy ja jako x. Najszybszy sposób obliczenia polega na zastosowaniu operatora koniunkcji binarnej &:

if((x & 1) == 0){...}

Na ostatniej pozycji liczby wyrażonej w postaci binarnej może wystąpić albo 0 albo 20 czyli 1. Jeżeli występuje 1 liczba jest nieparzysta. Jeżeli występuje 0 – liczba jest parzysta.

W podanym przykładzie wykonujemy maskowanie binarne wykonując koniunkcję ostatniego elementu liczby x z 1. Jeżeli w podanym przykładzie x równa się 1 wynik będzie 1, a wynikiem porównania będzie false. Liczba jest nieparzysta. Jeżeli x równa się 0, wynik będzie 0, porównanie zwróci true. Liczba jest parzysta.

Nawiasy są konieczne ze względu na priorytet operatorów.

A oto stosowny przykład w języku Java:

package binaria;

public class BinAria01 {
	public static void main(String[] args) {
		int a = 107;
		if((a & 1) == 0){
			System.out.println("liczba " + a + " jest parzysta");
		}
		else{
			System.out.println("Liczba " + a + " jest nieparzysta");
		}
		//-
		int b = 108;
		if((b & 1) == 0){
			System.out.println("liczba " + b + " jest parzysta");
		}
		else{
			System.out.println("Liczba " + b + " jest nieparzysta");
		}
	}
}

Po uruchomieniu kodu na konsoli otrzymujemy:

Liczba 107 jest nieparzysta
liczba 108 jest parzysta