Oto artykuł poświęcony tłumaczeniu jednego z operatorów bitowych. Bitowa alternatywa rozłączna, czyli wyjaśnienie jak w programowaniu przeprowadzić operację XOR na pojedynczych bitach liczb całkowitych 😯. Jak brzmi ciekawie, to zapraszam 🙂. Jak nie, także zapraszam 😄!

BITOWA ALTERNATYWA ROZŁĄCZNA W PROGRAMOWANIU, CZYLI "XOR" NA BITACH

Alternatywa rozłączna (czy też wykluczająca) jest dużo rzadziej spotykanym wariantem w kodach źródłowych, jako że może robić więcej zamieszania, niż skorzystanie z może dłuższego, lecz dużo prostszego wyrażenia logicznego "jadącego" na alternatywach "tradycyjnych" (||) 😉.

W każdym razie tu działa ta sama operacja XOR, więc wynik jest uznany za prawdziwy wtedy i tylko wtedy, gdy nieparzysta liczba warunków jest spełniona ℹ️. Nie-pa-rzys-ta ⚠️! To samo tyczy się bitowej alternatywy rozłącznej, tylko że tutaj operujemy na liczbach całkowitych, a samo XOR jest wykonywane na bitach!

Jeżeli mam być szczerym, to nie znajdziesz żadnego szerszego zastosowania tego operatora 😞. Natomiast, zerknij na taką sztuczkę, którą możesz wykonać rozumiejąc jak działa bitowa alternatywa rozłączna 💡! Mając dwie liczby całkowite, możesz zamienić ich wartości między sobą bez używania zmiennej tymczasowej 😱! Stosując taki trik:

a ^= b;
b ^= a;
a ^= b;

możesz tego dokonać właśnie dzięki temu operatorowi 🤩! Możesz tą wiedzą pochwalić się przed znajomymi bądź kolegami z zespołu 😊!

Przykład obliczania

Wybieramy sobie parę liczb całkowitych: 45 i 78, tak jak przy tłumaczeniu jak działa alternatywa bitowa "zwykła". Wynikiem alternatywy rozłącznej dla tych liczb będzie równa 99. Dowiedzmy się jak to działa!

Jak przerobisz sobie liczbę 45 na system binarny:

0 0 1 0 1 1 0 1

 

i tak samo przeniesiesz 78 na system dwójkowy:

0 1 0 0 1 1 1 0

to będziesz w stanie zobaczyć z czego powstaje wynik:

0 0 1 0 1 1 0 1
0 1 0 0 1 1 1 0
0 1 1 0 0 0 1 1

czyli:

26 + 25 + 21 + 20 = 64 + 32 + 2 + 1 = 99

co kończy dowód 😀. Napiszę to jeszcze raz: alternatywa rozłączna zwraca wynik prawdziwy tylko, gdy nieparzysta liczba zdań jest prawdziwa! Gdybyśmy mieli na przykład 3 liczby całkowite i gdyby bit w odpowiedniej kolumnie miałby przyjąć wartość 1, to albo tylko jedna, albo wszystkie trzy, musiałyby mieć wartość bitu równą 1!

Przykład kodu źródłowego

Na zakończenie, krótki kod źródłowy w języku C podsumowujący ten artykuł:

#include 

int main(void)
{
	int binaryXOR = 45 ^ 78;

	printf("%d\n", binaryXOR);
	
	return 0;
}

Bitowa alternatywa rozłączna w przeważającej części języków wysokiego poziomu, oznaczana jest za pomocą "dzióbka" (^), którego postawisz używając kombinacji Shift+6.

A oto inne operatory bitowe, o których możesz chcieć się więcej dowiedzieć:

  • Koniunkcja bitowa (bity wyniku przyjmują wartość 1 <=> bity wszystkich zdań przyjmują wartość 1),
  • Alternatywa bitowa (bity wyniku przyjmują wartość 1 <=> bity któregokolwiek ze zdań przyjmują wartość 1),
  • Bitowa alternatywa rozłączna (bity wyniku przyjmują wartość 1 <=> bity w nieparzystej liczbie zdań przyjmują wartość 1) 👈 jesteś tutaj 😊,
  • Negacja bitowa (wszystkie bity zostają odwrócone z uwzględnieniem działania bitu znaku).
Bitowa alternatywa rozłączna w programowaniu

Bitowa alternatywa rozłączna (wykluczająca) to przeprowadzenie operacji XOR (ang. exclusive OR) na pojedynczych bitach przynajmniej dwóch liczb całkowitych.


I z mojej strony to tyle 😇.

PODOBNE ARTYKUŁY