Operatory bitowe w języku C

Bitwise Operators C Language



Operatory bitowe, często znane jako kodowanie na poziomie bitów, zostały odrzucone, aby interpretować dane tylko na poziomie bitowym. Bitwise wykonuje operacje na jednym lub nawet dodatkowych wzorach bitowych i liczbach binarnych na poziomie bitowym. Zostały one wykorzystane do przyspieszenia postępu estymacji obliczeń numerycznych. Składa się z dwóch liczb, z których jedna to 0, a druga 1. Oto kilka operatorów bitowych, które omówimy w naszym artykule.

Zaloguj się z systemu Linux i wypróbuj skrót Ctrl + Alt + T, aby otworzyć terminal konsoli. Będziemy mieli kilka przykładów do omówienia operacji operatorów bitowych w języku C. Omówmy osobno każdy operator bitowy.







Bitowe ORAZ:

Operator bitowy został użyty do replikacji bitu do wyniku, jeśli ten bit jest obecny w obu wzajemnych operandach. C lub C++ wymaga 2 operandów, które wykonują AND na każdym bicie tych dwóch liczb całkowitych. Bitowe AND wyniki 1, gdy oba bity mają wartość 1. Aby zrozumieć działanie, utwórz i otwórz plik typu C za pomocą edytora Nano. W tym celu musimy konsumować instrukcję nano w powłoce w następujący sposób:



$nanotest.c



Kod dla operatora bitowego AND został wyświetlony na poniższym obrazku. Wszystko, co musisz zrobić, to po prostu napisać ten kod w pliku edytora GNU nano test.c, tak jak jest. Ten kod ma bibliotekę nagłówkową stdio.h, bez której nie możemy wykonać kodowania w programowaniu w C. Następnie utworzyliśmy główną metodę z typem zwracanym jako liczba całkowita. W języku C wykonanie kodu odbywa się za pomocą metody main. Tak więc zadeklarowaliśmy dwie zmienne typu całkowitego, x i y, z odpowiednio wartościami 35 i 13. Następnie została określona inna zmienna całkowita, której wartością jest zero. Użyjemy pierwszych dwóch zmiennych całkowitych i zastosujemy między nimi bitowy operator AND. Ta praca została wykonana w następnym wierszu, w którym operator AND został użyty jako &, a wynikowa wartość będzie przechowywana w pustej zmiennej z. Następnie użyliśmy instrukcji print, aby wyświetlić wynikową wartość na ekranie terminala i główna metoda się zamyka. Zapisz plik za pomocą skrótu GNU Ctrl + S, a następnie zamknij edytor nano za pomocą Ctrl + X z klawiatury maszyny do pisania.





Tak więc pora na skompilowanie powyższego kodu po zapisaniu pliku. Użyj instrukcji gcc w powłoce konsoli, używając nazwy pliku jako test.c lub innej nazwy pliku i naciśnij klawisz Enter. Widać, że nie pokazuje żadnego błędu; oznacza to, że kod jest ręcznie poprawny.



$gcctest.c

Po skompilowaniu kodu czas na wykonanie kodu teraz. W tym celu uruchom w powłoce podane poniżej zapytanie. Dane wyjściowe pokazują 1 jako wynik. Oznacza to, że obie nasze zmienne całkowite mają 1 w jednym ze swoich bitów. Dlatego zwraca 1.

$./a.out

Bitowe LUB:

Teraz okazało się, że należy opracować bitowy operator OR. Operator bitowy zwraca 1 w wyniku, gdy jeden z jego bitów wynosi 1. Jeśli oba bity dwóch liczb całkowitych są równe 0, to daje 0. Po uzyskaniu wszystkich bitów zostanie wygenerowany zestaw bitów. Musimy zobaczyć, jaką liczbę utworzyły te bity. Więc najpierw otwórz ten sam dokument test.c. Wpisz, a następnie zapisz pokazany poniżej kod w pliku GNU, używając klawisza Ctrl+S. Kod jest prawie taki sam jak w powyższym przykładzie z operatorem bitowym AND. Tym razem właśnie zmieniliśmy wartość liczby całkowitej x na 47 i użyliśmy operatora OR, np. | między obiema zmiennymi. Zamknij plik, aby skompilować kod.

Po pomyślnym wykonaniu dokumentu test.c pokazuje 47 bitów wyjściowych.

$./a.out

Bitowe XOR:

Operator bitowy zwraca 1, gdy oba bity liczbowe są różne. Więc kiedy bity są takie same, da 0. Znak operatora ^ będzie reprezentował operator bitowy. Więc ponownie otwórz dokument i napisz ten sam stary kod w edytorze plików GNU. Tym razem używamy operatorów ^ w obrębie dwóch zmiennych całkowitych, a wynik zostanie zapisany w zmiennej z podczas drukowania w terminalu.

Skompiluj i uruchom plik test.c zwróci 34 jako wynik. Oznacza to, że nowa liczba całkowita 34 jest generowana po zastosowaniu operatora XOR do dwóch zmiennych całkowitych.

$./a.out

Uzupełnienie bitowe:

Ten operator zostanie zastosowany tylko do pojedynczej zmiennej i odwróci wartość numeru bitu. Na przykład zmieni bit 0 na 1 i 1 na 0. Napisz ten sam kod w tym samym pliku, ale z niewielką zmianą w linii 6. Przypisaliśmy odwrotność x do z.

Skompiluj plik i uruchom go. W C wynik dopełnienia bitowego został zwiększony o 1 ze znakiem ujemnym.

Operator zmiany lewej:

W pewnym stopniu przesunie to miejsce bitów. Ten sam kod można wyświetlić na załączonym obrazku – poniżej. W tym przykładzie przesuniemy 2 bity w lewo.

Wyjście pokazuje 188 jako nowo wygenerowaną wartość.

$./a.out

Operator zmiany prawej:

Działa to tak samo, jak lewe przesunięcie, ale w przeciwnym kierunku, jak pokazano w poniższym kodzie.

Tym razem mamy 11 jako wyjście po przesunięciu 2 bitów w prawo.

$./a.out

Wniosek:

W tym artykule omówiliśmy wszystkie podstawowe 6 operatorów bitowych w naszym kodzie języka C. Mam nadzieję, że dostaniesz to, czego chciałeś od naszego przewodnika.