Heim >Backend-Entwicklung >Golang >Wie extrahiere ich Bitdarstellungen aus Bytes in Go?

Wie extrahiere ich Bitdarstellungen aus Bytes in Go?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-04 02:49:021071Durchsuche

How to Extract Bit Representations from Bytes in Go?

So rufen Sie Bitdarstellungen aus Bytes in Go ab

Problem:

Bestimmen Sie die Bitdarstellung eines Bytes, z als „00000001“ aus Byte(1) zu erhalten.

Lösung:

Es gibt zwei Ansätze zum Extrahieren von Bitdarstellungen:

  1. Visuelle Darstellung mithilfe von Formatierung:

    • Verwenden Sie fmt.Sprintf(" b", ...). Dadurch wird eine Zeichenfolgendarstellung der Bits des Bytes mit führenden Nullen generiert, um ein 8-Bit-Format sicherzustellen.
  2. Bitweise Operationen für mathematische Operationen:

    • Bestimmen Sie bestimmte Bits mit bitweisen UND-Operatoren.
    • Erstellen Sie eine Maske, indem Sie das gewünschte Bit auf 1 und die anderen auf 0 (2n-1) setzen.
    • Bitweises UND des Bytes und der Maske ausführen.
    • Wenn das Ergebnis der Maske entspricht, ist das Bit 1; andernfalls ist es 0.

Beispiel:

So finden Sie die Bits von Byte(13):

<code class="go">fmt.Print(13 & 1) // Output: 1
fmt.Print(13 & 2) // Output: 0
fmt.Print(13 & 4) // Output: 4
fmt.Print(13 & 8) // Output: 8</code>

Dies zeigt, dass die Bitdarstellung von 13 „00001101“ ist.

Zusätzlicher Hinweis:

Zur Berechnung des Hamming-Abstands zwischen Bytes verwendet der bereitgestellte Code bitweise Operationen, um jedes Bit einzeln zu vergleichen. Die Funktion zählt die Anzahl der nicht übereinstimmenden Bits und gibt den Abstand zurück.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich Bitdarstellungen aus Bytes in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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