Operatory bitowe języka C
Operatory bitowe wykonują operacje iloczynu bitowego AND (&), wykluczającej sumy bitowej OR (^) oraz niewykluczającej sumy bitowej OR (|).
Składnia
Wyrażenie AND:
wyrażenie równoważnościwyrażenie AND & wyrażenie równoważności
wykluczające wyrażenie OR:
wyrażenie-ANDwykluczające wyrażenie OR ^ wyrażenie AND
niewykluczające wyrażenie OR:
wykluczające wyrażenie ORniewykluczające wyrażenie OR | wykluczające wyrażenie OR
Operandy operatorów bitowych muszą być typu całkowitego, ale ich typy mogą być różne.Operatory te wykonują zwykłe konwersje arytmetyczne; typ wyniku jest po konwersji typem operandów.
Poniżej opisano operatory bitowe języka C:
Operator |
Opis |
---|---|
& |
Operator bitowy AND porównuje każdy bit pierwszego operandu z odpowiadającym bitem drugiego operandu.Jeśli oba bity są równe 1, odpowiadający im bit wyniku będzie równy 1.W przeciwnym razie odpowiadający im bit wyniku będzie równy 0. |
^ |
Operator bitowy sumy wykluczającej OR porównuje każdy bit pierwszego operandu z odpowiadającym bitem drugiego operandu.Jeśli jeden bit ma wartość 0, a drugi bit ma wartość 1, odpowiadający im bit wyniku będzie równy 1.W przeciwnym razie odpowiadający im bit wyniku będzie równy 0. |
| |
Operator bitowy sumy niewykluczającej OR porównuje każdy bit pierwszego operandu z odpowiadającym bitem drugiego operandu.Jeśli oba bity mają wartość 1, odpowiadający im bit wyniku będzie równy 1.W przeciwnym razie odpowiadający im bit wyniku będzie równy 0. |
Przykłady
Deklaracje te są używane w poniższych trzech przykładach:
short i = 0xAB00;
short j = 0xABCD;
short n;
n = i & j;
Wynik przypisany do n w tym pierwszym przykładzie jest taki sam, jak i (szesnastkowo 0xAB00).
n = i | j;
n = i ^ j;
Bitowa suma niewykluczająca OR w drugim przykładzie skutkuje zwróceniem wartości 0xABCD (szesnastkowo), podczas gdy bitowa suma wykluczająca OR w trzecim przykładzie powoduje wyprodukowanie wartości 0xCD (szesnastkowo).
Specyficzne dla firmy Microsoft
Wyniki operacji bitowych wykonywanych na liczbach całkowitych ze znakiem są zdefiniowane w implementacji, zgodnie ze standardem ANSI C.W przypadku kompilatora Microsoft C, operacje bitowe dla liczb całkowitych ze znakiem działają w taki sam sposób, jak operacje bitowe dla liczb całkowitych bez znaku.Na przykład -16 & 99 może być wyrażone w postaci danych binarnych, jako
11111111 11110000
& 00000000 01100011
_________________
00000000 01100000
Wynikiem bitowej operacji AND jest liczba dziesiętna 96.
KONIEC informacji specyficznych dla firmy Microsoft