Einführung in Bitmasken in Python

Einführung in Bitmasken

Eine Bitmaske ist ein gängiges Konzept in fast jeder Programmiersprache; im Grunde handelt es sich lediglich um eine Variable, die Ihnen bei der Bitmanipulation hilft und Ihnen hilft, die Bits eines Werts, sagen wir, eines ganzzahligen Werts, zu verstehen und zu manipulieren.

Es hilft auch dabei, Werte in eine kleinere, effizientere Version zu komprimieren, wodurch der Speicherverbrauch und die Bitmanipulation reduziert werden. In einem Computer werden alle Daten oder Informationen in Bits niedrigerer Ebene gespeichert.

Dieses Bit kann nur zwei Zustände haben, entweder 0 (Falsch) oder 1 (Wahr), und bestimmte Kombinationen haben bestimmte Bedeutungen.

Sehen wir uns ein Beispiel an, um das Bitmaskenkonzept in Python zu verstehen.

# convert 8 into binary format --> 1000
bindata = format(8, "b")
print(bindata)

Ausgabe:

1000

Im obigen Beispiel haben wir 8, eine dezimale Ganzzahl, in eine binäre Form umgewandelt, die 1000 entspricht. Jetzt können wir noch tiefer mit den 8 interagieren und jeden einzelnen Teil davon manipulieren.

Hier kommt das Konzept der Bitmasken ins Spiel. Aber schauen wir uns zunächst ein Beispiel an, wie wir mit Bits interagieren können.

Beispielcode:

bin_a = int(format(8, "b")) # 1000
bin_b = int(format(1, "b")) # 0001 or 1
        # 1000 (8)
        # 0001 (1) OR (|) Bitwise Operator
        # -----
        # 1001 (9)
print(f"bin_ a = {
      
      bin_a}")
print(f"bin_ b =  {
      
      bin_b}")
print(f"The OR (SUM) of bin_a and bin_b = {
      
      (bin_a | bin_b)}")

Ausgabe:

bin_ a = 1000
bin_ b =  1
The OR (SUM) of bin_a and bin_b = 1001

Im obigen Codezaun haben wir den bitweisen Operator OR verwendet, dargestellt als |, der zum bitweisen Addieren von Binärwerten verwendet wird.

bitweiser Operator

Bitweise Operatoren führen bitweise Operationen für alle Integraltypen short, byte, long, char, int usw. durch. Es gibt verschiedene bitweise Operatoren, von denen jeder einen bestimmten Anwendungsfall hat.

  • Anzahl der Ziffern ODER|
  • Ziffern und &
  • Ziffer XOR
  • Ziffernkomplement~

1. Ziffer ODER|

Der OR-True-Operator ist ein bitweiser Operator, ausgedrückt als , der eine bitweise Operation an zwei oder mehr Werten ausführt und zurückgibt, wenn mindestens einer der Werte wahr ist, andernfalls. | wahr falsch

Es folgt die Grundstruktur von OR (|) zweier Werte:

|A |B |A | B |
| ——— | ——— | ——— |
| 1 () | 1 () | 1 ()
| 0 (False) | 0 (False) | 0 (False) | 0 (False)
| 1 () | 0 () | 1 () | 0 ()
| 0 (False) | 1 (True) | 1 (True) |

Beispielcode:

### Bitwise operator OR (|)
a = int(format(5, "b")) # 101
b = int(format(4, "b")) # 100
        # 101 (5)
        # 100 (4)  OR (|) Bitwise Operator
        # ------
        # 101 (5)
print(f"a = {
      
      a}nb = {
      
      b}")
print("a & b = ", (a | b)) # 101

Ausgabe:

a = 101
b = 100
a & b =  101

2. Ziffern und &

Der AND-Operator ist ein bitweiser Operator, dargestellt als &, der eine bitweise Berechnung für zwei oder mehr Werte durchführt und „true“ zurückgibt, wenn beide Werte wahr sind; andernfalls wird „false“ zurückgegeben.

Die Grundstruktur von AND (&) besteht aus zwei Werten:

A 	B 	A & B
1 () 	1 (True) 	1 ()
0 (False) 	0 () 	0 ()
1 () 	0 () 	1 ()
0 () 	1 () 	0 ()

Beispielcode:

# Bitwise operator AND (&)
a = int(format(5, "b")) # 101
b = int(format(4, "b")) # 100
        # 101 (5)
        # 100 (4)  AND (&) Bitwise Operator
        # -----
        # 100 (4)
print(f"a = {
      
      a}nb = {
      
      b}")
print("a & b = ", (a & b)) # 100

Ausgabe:

a = 101
b = 100
a & b =  100

3. Ziffer XOR

Es handelt sich um einen binären Operator mit der Bezeichnung , der „false“ oder „true“ oder „false“ zurückgibt, wenn die beiden angegebenen Werte gleich sind; andernfalls gibt er „true“ zurück.

Die Grundstruktur des XOR-Operators ist wie folgt:

A 	B 	A ^ B
1 () 	1 () 	0 ()
0 () 	0 () 	0 ()
1 () 	0 () 	1 ()
0 () 	1 () 	1 ()

Beispielcode:

 # Bitwise operator XOR (^)
a = int(format(7, "b")) # 101
b = int(format(4, "b")) # 100
        # 111 (7)
        # 100 (4)  XOR (^) Bitwise Operator
        # ------
        # 011 (3)
print(f"a = {
      
      a}nb = {
      
      b}")
print("a ^ b = ", (a  b)) # 011 or 11 

Ausgabe:

a = 111
b = 100
a ^ b =  11

4. Ziffernkomplement~

Das Zweierkomplement (~) ist ein singulärer Operator, der als NOT-Operator bekannt ist. Der NOT-Operator invertiert das Bitmuster eines Werts.

Die Grundstruktur des NOT-Operators ist:

A 	~A
1 () 	0 ()
0 () 	1 ()

Sehen wir uns das folgende Beispiel an, um das Konzept von NOT (~) zu lernen.

# Bitwise operator NOT (~)
#Python小白学习交流群:711312441
a = int(format(0, "b"))
print(f"a = {
      
      a}")
print(f"The Complement of a = {
      
      ~a}")

Ausgabe:

a = 0
The Complement of a = -1

Ich denke du magst

Origin blog.csdn.net/qdPython/article/details/131982661
Empfohlen
Rangfolge