Udostępnij za pośrednictwem


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-expressioninclusive-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: |