Operatory bitowe języka C
Operatory bitowe wykonują operacje bitowe AND (&
), bitowo-exclusive-OR (^
) i bitowo-inkluzywne-OR (|
).
Składnia
AND-expression
:
equality-expression
AND-expression
&
equality-expression
exclusive-OR-expression
:
AND-expression
exclusive-OR-expression
^
AND-expression
inclusive-OR-expression
:
exclusive-OR-expression
inclusive-OR-expression
|
exclusive-OR-expression
Operandy operatorów bitowych muszą mieć typy całkowite, ale ich typy mogą być różne. Te operatory wykonują zwykłe konwersje arytmetyczne; typ wyniku jest typem operandów po konwersji.
Operatory bitowe języka C zostały opisane poniżej:
Operator | opis |
---|---|
& |
Operator bitowy AND porównuje każdy bit pierwszego operandu do odpowiadającego mu bitu drugiego operandu. Jeśli oba bity mają wartość 1, odpowiedni bit wynikowy ma wartość 1. W przeciwnym razie odpowiedni bit wynikowy ma wartość 0. |
^ |
Operator bitowo-exclusive-OR porównuje każdy bit swojego pierwszego operandu do odpowiadającego mu bitu drugiego operandu. Jeśli jeden bit ma wartość 0, a drugi to 1, odpowiedni bit wynikowy ma wartość 1. W przeciwnym razie odpowiedni bit wynikowy ma wartość 0. |
| |
Operator bitowo-inkluzywnie-OR porównuje każdy bit swojego pierwszego operandu do odpowiadającego mu bitu drugiego operandu. Jeśli bit ma wartość 1, odpowiedni bit wynikowy ma wartość 1. W przeciwnym razie odpowiedni bit wynikowy ma wartość 0. |
Przykłady
Te deklaracje są używane w następujących 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
(0xAB00 szesnastkowy).
n = i | j;
n = i ^ j;
Bitowe or w drugim przykładzie powoduje, że wartość 0xABCD (szesnastkowa), podczas gdy bitowo-wyłączny OR w trzecim przykładzie generuje 0xCD (szesnastkowe).
Specyficzne dla firmy Microsoft
Wynikiem operacji bitowej na podpisanych liczbach całkowitych jest zdefiniowana implementacja zgodnie ze standardem C. W przypadku kompilatora Microsoft C operacje bitowe na podpisanych liczbach całkowitych działają tak samo jak operacje bitowe na niepodpisanych liczbach całkowitych. Na przykład -16 & 99
można wyrazić w pliku binarnym jako
11111111 11110000
& 00000000 01100011
_________________
00000000 01100000
Wynik bitowego and wynosi 96 dziesiętnych.
END Microsoft Specific
Zobacz też
Operator BITOWY AND: &
Bitowy wyłączny operator OR: ^
Operator or inkluzywny bitowy: |