Operatory bitowe języka C
Operatory bitowe wykonują operacje bitowe AND (&
), bit-exclusive-OR (^
) i bitowe 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 wyniku jest ustawiony na wartość 0. |
^ |
Operator bitowo-exclusive-OR porównuje każdy bit pierwszego operandu do odpowiadającego mu bitu drugiego operandu. Jeśli jeden bit to 0, a drugi bit to 1, odpowiedni bit wynikowy ma wartość 1. W przeciwnym razie odpowiedni bit wyniku jest ustawiony na wartość 0. |
| |
Operator bitowo-inkluzywne OR porównuje każdy bit pierwszego operandu do odpowiadającego mu bitu drugiego operandu. Jeśli jeden bit ma wartość 1, odpowiedni bit wynikowy ma wartość 1. W przeciwnym razie odpowiedni bit wyniku jest ustawiony na 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 bitowy lub w trzecim przykładzie generuje 0xCD (szesnastkowy).
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 dla niepodpisanych liczb całkowitych. Na przykład -16 & 99
można wyrazić w pliku binarnym jako
11111111 11110000
& 00000000 01100011
_________________
00000000 01100000
Wynik bitowego I wynosi 96 dziesiętnych.
END Microsoft Specific
Zobacz też
Bitowy operator AND: &
Bitowy wyłączny operator OR: ^
Operator or inkluzywny bitowy: |
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla