Diese Seite ist auch in 2 anderen Sprachen verfügbar.
Sprache wechseln  

~

[Bitwise Operators]

Beschreibung

Der bitweise NOT-Operator in C ++ ist das Tilde-Zeichen ~. Im Gegensatz zu & und | wird der bitweise NOT-Operator auf einen einzelnen Operanden rechts davon angewendet. Bitweises NOT ändert jedes Bit in sein Gegenteil: 0 wird 1 und 1 wird 0.

In anderen Worten:

0  1    operand1
-----
1  0   ~operand1

Beispielcode

int a = 103; // Binär: 0000000001100111
int b = ~a;  // Binär: 1111111110011000 = -104

Anmerkungen und Warnungen

Möglicherweise bist du überrascht, als Ergebnis dieses Vorgangs eine negative Zahl wie -104 zu sehen. Dies liegt daran, dass das höchste Bit in einer int-Variablen das sogenannte Vorzeichenbit ist. Wenn das höchste Bit 1 ist, wird die Zahl als negativ interpretiert. Diese Kodierung von positiven und negativen Zahlen wird als Zweierkomplement bezeichnet. Weitere Informationen finden sich im Wikipedia-Artikel über das Zweierkomplement.

Nebenbei bemerkt ist es interessant zu wissen, dass ~x für jede ganze Zahl x das gleiche ist wie -x-1.

Das Vorzeichenbit in einem vorzeichenbehafteten ganzzahligen Ausdruck kann manchmal zu unerwünschten Überraschungen führen.

Siehe auch