Warum ergibt „~2' in Python „-3'?

Patricia Arquette
Freigeben: 2024-11-17 17:11:02
Original
529 Leute haben es durchsucht

Why Does `~2` Yield `-3` in Python?

Den bitweisen Komplementoperator (~) von Python verstehen

Warum ergibt ~2 in Python -3? Der bitweise Komplementoperator (~), oft als Tilde bezeichnet, spielt bei bitweisen Operationen eine entscheidende Rolle. Um seine Funktionsweise zu verstehen, wollen wir uns mit dem Konzept der Zweierkomplementdarstellung befassen.

Negative ganze Zahlen werden in Python unter Verwendung des Zweierkomplements gespeichert, was die Umkehrung der binären Darstellung des positiven Gegenstücks und das Hinzufügen von Eins beinhaltet. Die binäre Darstellung von -2 im Zweierkomplement lautet beispielsweise:

1111 1110
Nach dem Login kopieren

Dies erhält man durch Invertieren der Bits der binären Zweierdarstellung (0000 0010) und Addieren von eins. Das führende Bit dient als Vorzeichenbit und stellt einen negativen Wert dar.

Nun untersuchen wir, wie die Anwendung des Komplementoperators auf zwei zu -3 führt:

two: 0000 0010
~two: 1111 1101
Nach dem Login kopieren

Wir invertieren einfach die Bits von zwei, was zur invertierten Darstellung führt. Diese invertierte Darstellung stimmt jedoch zufällig mit der Zweierkomplementdarstellung von -3 überein, die lautet:

1111 1101
Nach dem Login kopieren

Daher liefert die Anwendung des Komplementoperators auf zwei effektiv die Zweierkomplementdarstellung von -3.

Es ist wichtig zu beachten, dass der Komplementoperator (~) lediglich die Bits einer Zahl umdreht. Die tatsächliche Interpretation dieser Bits hängt von der Maschinenarchitektur und dem Kontext ab, in dem sie verwendet werden. Bei Ganzzahlen in Python interpretiert die Maschine die invertierten Bits gemäß der Zweierkomplementdarstellung für negative Zahlen.

Das obige ist der detaillierte Inhalt vonWarum ergibt „~2' in Python „-3'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage