Inne wpisy na podobny temat:

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 sa 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

Ciekawostka

IntelliJ IDEA - kompromitujący błąd

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *