Operatorzy zmiany biegów w C

Operatorzy zmiany biegów w C

Ogólnie rzecz biorąc, nie powinieneś martwić się o operacje gdzieś na poziomie bitowym jako programista. Możesz konceptualizować w kategoriach bajtów, int i podwójnych, a nawet danych o wyższym poziomie. Istnieją jednak przypadki, w których chciałbyś powiększyć jeden kawałek. Bity w zmiennej całkowitej są przesunięte o określoną liczbę pozycji za pomocą dwóch operatorów zmiany biegów. Operator „>>” zmienia bity po prawej stronie, podczas gdy operator zmienia bity w lewo. Ogólnie rzecz biorąc, zastosowanie operatorów lewej i prawej zmiany zamiast obliczania, a następnie mnożenia przez moc dwóch, spowoduje znacznie szybszy kod.

W rezultacie możemy podzielić operatora zmiany biegów na dwie główne kategorie:

  • Operator przesunięcia w lewo
  • Operator prawej zmiany

Przykład operatora zmiany biegów

W C jest to operator zmiany biegów, który działa z bitami. Jest operatorem binarnym, co oznacza, że ​​działa z dwoma operandy. Służy do przenoszenia kawałków wartości po lewej stronie, dodając zer do pustych przestrzeni po zmianie. Według liczby miejsc określonych w drugim operand.

Składnia

„Nameofvariable”<Mogą istnieć dwie wartości w powyższej składni; Pierwsza to zmienna liczb całkowita, na której moglibyśmy użyć operatora lewej zmiany. Nazwa tej zmiennej może być wszystkim, co użytkownik chce. Druga wartość to liczba całkowita, która określa, ile miejsc należy przenieść w lewo.

Wynik operacji przesunięcia lewego będzie nieznany, czy pierwszy operand jest ujemny. Podobnie, jeśli jakoś wartość drugiego operandu jest ujemna lub więcej lub równa liczbie bitów podczas pierwszego operandu, wynik operacji lewej zmiany jest niezdefiniowany. Podczas gdy jeśli wartość drugiego operandu jest większa niż rozmiar liczby całkowitej, wynik operacji lewej zmiany byłby również niezdefiniowany.

Wdrażamy wszystkie te przykłady na Ubuntu 20.04 system operacyjny Linux. Otwórz okno terminalu Ubuntu 20.04 System operacyjny Linux i wykonaj następującą dołączoną instrukcję w powładzie, aby utworzyć plik zatytułowany „Lefthift.C". Rozszerzenie pliku jest .C, który przedstawia plik dotyczy języka programowania C.

$ nano pozostawione.C

Po utworzeniu plik zostanie otwarty w edytorze GNU. Wykonaj wymieniony poniżej kod programowania.

W tym kodzie przypisaliśmy wartości do „a” i „b” jako „2” i „9” i zastosowaliśmy lewy operator zmiany biegów. Wydrukowaliśmy wynik, wykorzystując funkcję printf (). Cały kod jest zapisany w głównej funkcji. Po zapisaniu tego pliku napisz poniższe polecenia wymienione w celu wykonania i kompilacji wyżej wymienionego kodu za pomocą kompilatora GCC.

$ GCC lew. Slift.C
$ ./A.na zewnątrz

Po wykonaniu wyjście jest wyświetlane, ponieważ można sprawdzić w załączonym obrazie.

Przykład operatora w prawo

Dwie liczby są używane jako operandy w prawej operacji zmiany (>>). Drugi operand określa, czy pierwsza operand powinien w prawo zmienić bity, a także liczbę miejsc, które należy przesunąć. Innymi słowy, 0 jest używane, chyba że liczba jest dodatnia, a 1 jest używana, gdy liczba jest ujemna.

Składnia

„Nameofvariable” >> „TotalPositionNumbers”

W powyższej linii mogą istnieć dwie wartości; Pierwsza to zmienna liczb całkowita, która używa prawego operatora zmiany. Nazwa tej zmiennej może być wszystkim, co użytkownik chce. Druga wartość to liczba całkowita, która określa, ile miejsc należy przesunąć w prawo.

Wdrażamy wszystkie te przykłady na Ubuntu 20.04 system operacyjny Linux. Otwórz okno terminalu Ubuntu 20.04 System operacyjny Linux i wykonaj następującą dołączoną instrukcję w powłoce, aby utworzyć plik zatytułowany „RSHIFT.C". Rozszerzenie pliku jest .C, który przedstawia plik dotyczy języka programowania C.

Po utworzeniu plik zostanie otwarty w edytorze GNU. Wykonaj wymieniony poniżej kod programowania.

W tym kodzie przypisaliśmy wartości do A i B jako „5” i „9” i zastosowaliśmy lewy operator zmiany biegów. Wydrukowaliśmy wynik, wykorzystując funkcję printf (). Cały kod jest zapisany w głównej funkcji. Po zapisaniu tego pliku napisz poniższe polecenia wymienione w celu wykonania i kompilacji wyżej wymienionego kodu za pomocą kompilatora GCC.

$ gcc rshift.C
$ ./A.na zewnątrz

Po wykonaniu wyjście jest wyświetlane, ponieważ można sprawdzić w załączonym obrazie.

Wniosek

Operatorzy bitowate są zestawem specjalnych operatorów podanych przez język programowania „C”. Są zatrudnione w programowaniu na poziomie bitów. W C /, nauczyliśmy się korzystać z operatorów lewej i prawej zmiany, które są ważne dla operacji zmieniających bity na liczbach niepodpisanych. Po połączeniu operatorów zmiany biegów można wyodrębnić dane z wyrażenia liczb całkowitych. Uważam, że z łatwością użyjesz operatorów zmiany za pomocą tego dokładnego przewodnika.