| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Bitwise_NOT | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
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.
const a = 5; // 00000000000000000000000000000101
const b = -3; // 11111111111111111111111111111101
console.log(~a); // 11111111111111111111111111111010
// Expected output: -6
console.log(~b); // 00000000000000000000000000000010
// Expected output: 2
~x
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.
~0; // -1
~-1; // 0
~1; // -2
~0n; // -1n
~4294967295n; // -4294967296n
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-bitwise-not-operator |
Der Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |