Skip to main content

Czym są operatorzy bitowate?

W programie komputerowym operatorzy bitowate są operatorami manipulowania wzorcami bitów w wyrażeniach.Bitwise i, lub, wyłączne lub (XOR), a nie przesunięcie prawe i przesunięcie lewej są powszechnymi operacjami.Większość języków programowania komputerowego obejmuje wszystkie sześć z tych operatorów.Często są używane do ustawiania, usuwania lub odwracania poszczególnych bitów w programach kontrolujących sprzęt komputerowy.Operatory bitowe są również często używane w algorytmach szyfrowania danych i kompresji.

Wspólne operatory bitowe są zwykle reprezentowani symbolicznie w językach programowania, takich jak C, C ++ i Java.Są one stosowane w wyrażeniach, tak jak operatorzy arytmetyczne, takie jak Plus lub minus znak.Operator bitowate i jest reprezentowany z ampersand lub z rurą |

i xor z Caret ^.Nie, znany również jako operator uzupełniający, jest wskazany przez Tylde << ~ .

Prawa operator zmiany używa podwójnego karetu wskazującego prawe

.Natomiast przesunięcie lewej jest wskazywane przez podwójny karet lewy

.Java obejmuje kolejną operację prawej zmiany, pokazaną z prawym potrójnym karetem

.

Operatorzy bitowate stosują operatory logiczne do każdej pary bitów w swoich operantach.Nie, prawa zmiana i lewa zmiana mają tylko jeden prawdziwy operand;Druga wartość w operacjach Shift to liczba bitów.Aby lepiej zrozumieć, jak działają operatorzy bitowate, jednostka może wizualizować swoje operandy jako cyfry binarne.Na przykład operator uzupełniający odwraca każdy bit swojego pojedynczego operandu do przeciwnego stanu.Jeden staje się zero, a zero staje się jednym.Uzupełnienie 8-bitowej wartości binarnej 00110101 wynosi 11001010.

Operator ma dwa operandy.Po kratce wykonywane są logiczne i działanie za pomocą jednego odpowiedniego bitu z każdego operandu.Wynik każdej operacji bitowej umieszcza się w tej pozycji bitowej ogólnego wyniku.Na przykład i operator przetworzą bit 7 z jednego operandu z bitami 7 drugiego operandu.Wynik zostanie przechowywany w bit 7 z ogólnego wyniku.

W i działaniu oba bity operacyjne muszą być takie, aby wynik był jeden, w przeciwnym razie wynik wynosi zero.Na przykład, jeśli 8-bitowe wartości binarne operandów wynoszą 00110101 i 11110000, wynik wyniesie 00110000. Powszechnym zastosowaniem operatora i operatora jest zerowanie poszczególnych bitów w wyniku.Odbywa się to poprzez umieszczenie zera w tych pozycjach bitów w jednym z operandy.

W operacji Oba bity operandów muszą być zerami, aby wynik wynosił zero;W przeciwnym razie wynik jest jeden.Powszechnym zastosowaniem operatora lub jest ustawianie niektórych bitów wyniku na te.Odbywa się to poprzez umieszczenie tych w tych pozycjach bitowych w jednym z operandów.W przypadku operacji XOR wynik wynosi zero, jeśli oba bity operandowe wynoszą zero lub jeśli oba bity operandowe są jednym i mdash; w przeciwnym razie wynik jest jeden. Przesunięcie lewej i przesunięcia w prawo przesuń bity w lewym lub prawym przez określoną liczbępozycji bitowych.Logiczne przesunięcie prawe przesuwa się zero w lewym bit jako część zmiany.Arytmetyczna prawa zmiana kopiuje lewy bit i mdash; przed przesunięciem po przesunięciu.Oryginalny bit jest również przesunięty w prawo wraz z resztą.Każdy rodzaj lewego przesunięcia przesuwa się zero do prawego bitu. << Gdy operand jest przesunięty w prawo, prawy bit przed zmianą jest po prostu wyrzucony.Podobnie, lewy bit przed lewą zmianą zostanie usunięty.Nie obejmuje drugiego końca operandu. Operacje zmiany biegów są zależne od języka i implementacji.Na przykład w C i C ++, i Wykonaj zmiany logiczne, jeśli operand jest niezbadaną liczbą całkowitą.Jeśli operand jest podpisaną liczbą całkowitą, prawdopodobne jest, że zamiast tego zostanie wykonana zmiana arytmetyczna.W Javie wszystkie operandy są uważane za podpisane, a przesunięcia arytmetyczne sąZawsze wykonywane z i <<.Operator jest używany do logicznego przesunięcia prawej, ale nadal możliwe jest przypadkowe wykonanie arytmetycznej zmiany prawej bez ostrożnego typuNiektóre są niepodpisane.Operatorzy bitowate i stałe liczbowe w środku złożonego wyrażenia nie mogą być oceniane zgodnie z przewidywaniami.Należy zachować ostrożność, aby określić rozmiar i podpisać/niepodpisany charakter każdej ilości w wyrażeniu.Można to zrobić przy starannych przypisaniach typu lub tymczasowych do określonych typów zmiennych w kodzie programu.