Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der bitweisen Dezimaloperationen und -berechnungen in Python

Zusammenfassung der bitweisen Dezimaloperationen und -berechnungen in Python

高洛峰
高洛峰Original
2017-03-01 14:14:251338Durchsuche

UND-Verknüpfung&

Beispiel:
3&5                     
Lösung: Das Zweierkomplement von 3 ist 11, und das Zweierkomplement von 5 ist 101, 3&5 ist 011&101, Schauen wir uns zuerst die Hunderterstelle an (eigentlich ist es nicht die Hunderterstelle, dies dient nur dem Verständnis. Es gibt eine 0 und eine 1. Gemäß (1&1=1, 1&0=0, 0&0=0, 0&1). =0), wir wissen, dass die Hunderterstelle 1 sein sollte und die Zehnerstelle auch gleich ist. Die Zahl 1&0=0, die Zahl an der Einerstelle ist 1&1=1, also ist das Endergebnis 1. (Es sollte Seien Sie einen Schritt danach, da der Wert, den wir jetzt erhalten, nur das Komplement der Antwort ist, nach der wir suchen, aber aufgrund der positiven Zahl Das Komplement ist es selbst und kann daher nicht weggelassen werden folgendes Beispiel).
-1&-2
Lösung: Das Komplement von -1 ist 11111111 und das Komplement von -2 ist 11111111. Der Code ist 11111110, 11111111&11111110. Das ist das Komplement Dann wird der Originalcode in 100000010 konvertiert (die Methode zum Konvertieren einer negativen Zahl in den Originalcode besteht darin, eins zu subtrahieren und sie zu negieren. Die endgültige Konvertierung in eine Dezimalzahl ist -2.
-2&6
Lösung:) Das Komplement von -2 ist 11111110, das Komplement von 6 ist 110, 11111110&110, also 11111110&00000110 (der Zweck dieses Schreibens besteht darin, Anfängern ein besseres Verständnis bitweiser Operationen zu ermöglichen). Befolgen Sie die obige Methode, um Folgendes zu erhalten: Das Ergebnis ist: 110, in Dezimalzahl umgewandelt ist 6 .
Tipp: Sie können die letzte Ziffer einer beliebigen Binärzahl bitweise in 0 ändern, also

z. B.:

a = 5
b = 3

print a & b

Ergebnis: 1
Wie wird dies tatsächlich durch das Binärsystem von a und b berechnet?

# a 的 b 的二进制
# 0*2**3 + 1*2**2 + 0*2**1 + 1*2**0
# 开始与运算
a = 0101
b = 0011

Ergebnis: 0001
Die UND-Verknüpfung besteht darin, die Binärzahlen von a und b zu vergleichen. Wenn beide Ziffern 1 sind, ist dies der Fall wird als 1 gezählt. Wenn Sie nicht zustimmen möchten: Wenn beide 0 sind, wird es als 0 gezählt. Wandeln Sie dann die Antwort von binär in dezimal um.

ODER-Verknüpfung|
Beispiel:
4|7
Lösung: Die Berechnungsregel der bitweisen Vereinigung ist der von bitweisem UND sehr ähnlich, die Logik ist es jedoch Geänderter Operator, die Vereinigungsregel lautet: 1|1=1, 1|0=1, 0|0=0. 4|7 in Binärform umgewandelt ist: 100|111=111. Binär 111 ist 7 in Dezimalzahl.
Tipps: Verwenden Sie die bitweise Funktion, um die letzte Ziffer einer beliebigen Binärzahl in 1 zu ändern, also 🎜>Ergebnis: print 7

a = 5
b = 3

print a | b

a |.b Das Ergebnis ist: 0111

ODER-Verknüpfung ist genau UND-Verknüpfung Im Gegenteil Wenn die Anzahl der Ziffern nicht 0 ist, wird sie als 1 gezählt, andernfalls wird sie als 0 gezählt.

Exklusive ODER-Verknüpfung
a = 0101
b = 0011

Methode: Bitaddition, es sollte besonders darauf geachtet werden, dass kein Übertrag erfolgt. Lösung: 10^101=111 Das Dezimalergebnis von binär 111 7.

1^1

Lösung: 1+1=0 (Ursprünglich binär 1+1=10, aber Übertrag ist nicht erlaubt, daher ist das Ergebnis 0)
-3^4

Lösung: Das Komplement von -3 ist 11111101, das Komplement von 4 ist 100 (also 00000100), 11111101^00000100=11111101, das Komplement von 11111101, konvertiert in den Originalcode, ist 1000111, also -7 in Dezimalzahl.






Ergebnis: 6




a ^ b Das Ergebnis ist 0110
a = 5
b = 3

print a ^ b
Wenn die Anzahl der Ziffern in der XOR-Operation nicht gleich ist, wird sie als 1 gezählt, andernfalls wird sie als 0 gezählt.

Linksverschiebung und Rechtsverschiebung
1. Linksverschiebungsoperator

Methode: X94b2e300a5817421abb132a9f7a210d8>

Methode: Lösung: Die Binärzahl von 10 ist 1010, und das Verschieben um eine Stelle nach rechts ist 101, also 5.

Das Ergebnis ist 20 10100
Die Verschiebungsoperation verschiebt die Binärzahl nach nach links oder rechts bewegt es sich um 2 Einheiten nach links.


Weitere Artikel zur Zusammenfassung dezimaler bitweiser Operationen und Berechnungen in Python finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
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