Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen „AND, OR, XOR“ in der Python- und C-Sprache

Der Unterschied zwischen „AND, OR, XOR“ in der Python- und C-Sprache

高洛峰
高洛峰Original
2016-10-19 13:32:521618Durchsuche

In Python:

Bitweise Operationen sind alle bitweisen Operationen, und sie alle arbeiten mit der Binärform der an der Operation beteiligten Zahlen.

1. UND-Verknüpfung: Wenn die Werte von A und B beide 1 sind, ist das Operationsergebnis von A, B und 1, andernfalls ist es 0 (Operator: &)

2. ODER-Verknüpfung: Wenn der Wert von A oder B 1 ist, ist das Operationsergebnis von A, B oder 1, andernfalls ist es 0 (Operator: |)

3 Sind unterschiedlich zu 1, ist das Budgetergebnis von A, B 1, andernfalls ist es 0 (Operator: ^)

4 Bitweise Umkehrung (bitweise Negation): Invertieren Sie die Binärzahl, die die Zahl im Speicher darstellt, und nehmen Sie 0 1, 1 nimmt 0 (Operator: ~)

Operationsmethode:

1. UND-Operation: 5&3 Berechnungsprozess ist 0101(2)&0011(2)=0001(2)=1

Hinweis: Es bedeutet, beide Zahlen zum Vergleich in Binärzahlen umzuwandeln. Wie im obigen Beispiel: Das Binärsystem von 5 ist 0101 und das Binärsystem von 3 ist 0011. Dann ist die erste Ziffer des Binärsystems von Diese beiden Zahlen sind gleich. Nehmen Sie eins und alle anderen nehmen Null an. Holen Sie sich 0001 und konvertieren Sie es dann in eine Dezimalzahl. Das Ergebnis ist 1

Um das Verständnis zu erleichtern, nehmen wir ein weiteres Beispiel, das Beispiel in Tabelle 5-4 in „Python Core Programming“: >>>30&45 Das Ergebnis ist 12

Das heißt, 30=(011110), 45=(101101) Bitoperation ergibt 12 (1100)

Die verbleibenden drei Bitoperationen sind die gleichen wie diese

2. ODER-Verknüpfung: 5|3 Berechnungsprozess ist 0101(2)|0011(2)=0111(2)=7

3. XOR-Verknüpfung: 5^3 Berechnungsprozess ist 0101(2)^ 0011(2)=0110(2)= 6

4. Bitweise Umkehrung (bitweise Negation): 5=0101(2) Berechnungsprozess~5=1010(2) Beispiel: Die bitweise Operation von X ist -(X 1)

Andere Bitoperationen: (>)

1. Die Linksverschiebung verschiebt die Bits einer Zahl um einen bestimmten Betrag nach links : 2=0010(2) 2

2: Die Rechtsverschiebungsmethode ist die gleiche wie die Linksverschiebung, jedoch in der entgegengesetzte Richtung

Darstellung negativer Zahlen in Computern:

Nach bitweiser Invertierung der ursprünglichen Zahl ist 1 = das Komplement der ursprünglichen Zahl (die Umkehrung der ursprünglichen Zahl)

Originalzahl: Die Zahl, die mithilfe des Binärsystems zur Darstellung einer gewöhnlichen Zahl im Computer gebildet wird, ist Originalzahl

Zum Beispiel: 5=00000000 00000000 00000000 00000101

5, nach Negierung ist es ist 11111111 11111111 11111111 11111010 Das Ergebnis 1 ist die ursprüngliche Zahl. Das Komplement von ist die binäre Darstellung von -5

In C-Sprache:

Die Prioritäten von hoch nach niedrig sind ~, &, ^ , |

Es gibt zwei typische Anwendungen der bitweisen UND-Verknüpfung: Eine davon ist das Abrufen bestimmter Bits einer Bitfolgeninformation. Der folgende Code fängt beispielsweise die niedrigsten 7 Bits von x ab: x & 0177. Die zweite besteht darin, einer Variablen zu erlauben, bestimmte Bits beizubehalten und den Rest auf 0 zu belassen. Der folgende Code ermöglicht beispielsweise x, nur die niedrigsten 6 Bits beizubehalten: x = x & 077.

Eine typische Verwendung einer bitweisen ODER-Verknüpfung besteht darin, bestimmte Bits einer Bitfolgeninformation auf 1 zu setzen. Wenn Sie die 4 Bits ganz rechts als 1 erhalten möchten und die anderen Bits die gleichen wie die ursprünglichen Bits der Variablen j bleiben, können Sie die logische ODER-Operation 017|j verwenden.

Eine typische Verwendung der bitweisen XOR-Operation besteht darin, eine Bit-String-Information zu finden. Das Gegenteil bestimmter Informationen. Wenn Sie die Umkehrung der 4 Informationsbits ganz rechts der ganzzahligen Variablen j ermitteln möchten, verwenden Sie die logische XOR-Operation 017^j, um die Umkehrung der 4 Informationsbits ganz rechts von j zu ermitteln, d. h. der Bits, die ursprünglich 1 waren , das Ergebnis ist 0 und das Original. Für Bits, die 0 sind, ist das Ergebnis 1. Tauschen Sie zwei Werte aus, ohne temporäre Variablen zu verwenden, wenn a=3, b=4. Wenn Sie die Werte von a und b vertauschen möchten, können Sie die folgende Zuweisungsanweisung verwenden:

a=a^b;

Negationsoperation Wird häufig zum Generieren von Konstanten verwendet, die von der Systemimplementierung unabhängig sind. Wenn Sie die niedrigsten 6 Bits der Variablen x auf 0 setzen und die restlichen Bits unverändert lassen möchten, können Sie dies mit dem Code x = x & ~077 erreichen.


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
Vorheriger Artikel:Spezielle Python-SyntaxNächster Artikel:Spezielle Python-Syntax