Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Ausdrücke und Operatoren
  5. Bitweises NICHT (~)

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

View in EnglishAlways switch to English

Bitweises NICHT (~)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Derbitweise NICHT-Operator (~) gibt eine Zahl oder ein BigInt zurück, deren binäre Darstellung in jeder Bitposition, für die das entsprechende Bit des Operanden0 ist, eine1 und ansonsten eine0 hat.

Probieren Sie es aus

const a = 5; // 00000000000000000000000000000101const b = -3; // 11111111111111111111111111111101console.log(~a); // 11111111111111111111111111111010// Expected output: -6console.log(~b); // 00000000000000000000000000000010// Expected output: 2

Syntax

js
~x

Beschreibung

Der~ Operator ist überladen für zwei Typen von Operanden: Zahl undBigInt. Für Zahlen gibt der Operator eine 32-Bit-Ganzzahl zurück. Für BigInts gibt der Operator ein BigInt zurück. Erzwingt den Operanden zuerst zu einem numerischen Wert und prüft dessen Typ. Er führt BigInt NICHT aus, wenn der Operand zu einem BigInt wird; andernfalls wird der Operand in eine32-Bit-Ganzzahl umgewandelt und das bitweise NICHT für Zahlen durchgeführt.

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

Die Wahrheitstabelle für den NICHT-Operator lautet:

xNICHT x
01
10
 9 (base 10) = 00000000000000000000000000001001 (base 2)               --------------------------------~9 (base 10) = 11111111111111111111111111110110 (base 2) = -10 (base 10)

Das bitweise NICHT einer beliebigen 32-Bit-Ganzzahlx ergibt-(x + 1). Zum Beispiel ergibt~-54.

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

Before: 11100110111110100000000000000110000000000001After:              10100000000000000110000000000001

Warnung:Sie werden möglicherweise Personen sehen, die~~ verwenden, um Zahlen auf Ganzzahlen zu kürzen. Ein zweimaliges Anwenden des bitweisen NICHT-Operators auf eine beliebige Zahlx gibtx als 32-Bit-Ganzzahl zurück, was zusätzlich führende Bits für Zahlen außerhalb des Bereichs von -2147483648 bis 2147483647 entfernt. Verwenden Sie stattdessenMath.trunc().

Für BigInts gibt es keine Kürzung. Konzeptuell können Sie positive BigInts als eine unendliche Anzahl führender0-Bits verstehen und negative BigInts als eine unendliche Anzahl führender1-Bits.

Beispiele

Verwendung von bitweisem NICHT

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

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-bitwise-not-operator

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp