[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Bitwise_NOT [Back]  [Original]

Bitweises NICHT (~) - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

Bitweises NICHT (~)

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.

Der bitweise NICHT-Operator (~) gibt eine Zahl oder ein BigInt zurck, deren binre Darstellung in jeder Bitposition, fr die das entsprechende Bit des Operanden 0 ist, eine 1 und ansonsten eine 0 hat.

In diesem Artikel

Probieren Sie es aus

const a = 5; // 00000000000000000000000000000101
const b = -3; // 11111111111111111111111111111101

console.log(~a); // 11111111111111111111111111111010
// Expected output: -6

console.log(~b); // 00000000000000000000000000000010
// Expected output: 2

Syntax

js
~x

Beschreibung

Der ~ Operator ist berladen fr zwei Typen von Operanden: Zahl und BigInt. Fr Zahlen gibt der Operator eine 32-Bit-Ganzzahl zurck. Fr BigInts gibt der Operator ein BigInt zurck. Er zwingt den Operanden zuerst zu einem numerischen Wert und prft dessen Typ. Er fhrt BigInt NICHT aus, wenn der Operand zu einem BigInt wird; andernfalls wird der Operand in eine 32-Bit-Ganzzahl umgewandelt und das bitweise NICHT fr Zahlen durchgefhrt.

Der Operator arbeitet mit den Bitdarstellungen der Operanden im Zweierkomplement. Der Operator wird auf jedes Bit angewendet, und das Ergebnis wird bitweise konstruiert.

Die Wahrheitstabelle fr den NICHT-Operator lautet:

x NICHT x
0 1
1 0
 9 (base 10) = 00000000000000000000000000001001 (base 2)
               --------------------------------
~9 (base 10) = 11111111111111111111111111110110 (base 2) = -10 (base 10)

Das bitweise NICHT einer beliebigen 32-Bit-Ganzzahl x ergibt -(x + 1). Zum Beispiel ergibt ~-5 4.

Zahlen mit mehr als 32 Bits verlieren ihre hchstwertigen Bits. Zum Beispiel wird die folgende Ganzzahl mit mehr als 32 Bits in eine 32-Bit-Ganzzahl umgewandelt:

Before: 11100110111110100000000000000110000000000001
After:              10100000000000000110000000000001

Warnung: Sie werden mglicherweise Personen sehen, die ~~ verwenden, um Zahlen auf Ganzzahlen zu krzen. Ein zweimaliges Anwenden des bitweisen NICHT-Operators auf eine beliebige Zahl x gibt x als 32-Bit-Ganzzahl zurck, was zustzlich fhrende Bits fr Zahlen auerhalb des Bereichs von -2147483648 bis 2147483647 entfernt. Verwenden Sie stattdessen Math.trunc().

Fr BigInts gibt es keine Krzung. Konzeptuell knnen Sie positive BigInts als eine unendliche Anzahl fhrender 0-Bits verstehen und negative BigInts als eine unendliche Anzahl fhrender 1-Bits.

Beispiele

Verwendung von bitweisem NICHT

js
~0; // -1
~-1; // 0
~1; // -2

~0n; // -1n
~4294967295n; // -4294967296n

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# sec-bitwise-not-operator

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page