Die Go-Sprache verwendet standardmäßig Big Endian oder Little Endian

青灯夜游
Freigeben: 2023-01-05 10:28:50
Original
4271 Leute haben es durchsucht

Die Go-Sprache ist standardmäßig Big Endian. Im Allgemeinen kann die Bytereihenfolge der Netzwerkübertragung Big-Endian oder Little-Endian sein, abhängig von den Protokollbestimmungen der Kommunikationsparteien beim Start der Software. Das TCP/IP-Protokoll RFC1700 schreibt die Verwendung der „Big-Endian“-Byte-Reihenfolge als Netzwerk-Byte-Reihenfolge vor. Diese Regel muss während der Entwicklung befolgt werden, Golang verwendet standardmäßig die Big-Endian-Reihenfolge.

Die Go-Sprache verwendet standardmäßig Big Endian oder Little Endian

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

1. Übersicht

Byte-Reihenfolge: Die Reihenfolge der Bytes beim Speichern im Computer und die Reihenfolge der Eingabe/Ausgabe beziehen sich auch auf die Reihenfolge der Bytes (Bytes) zum Speichern von Multibyte-Daten die Art und Weise, wie Ganzzahlen im Speicher gespeichert werden und die Reihenfolge, in der sie über das Netzwerk übertragen werden.

Schauen wir uns zunächst die Grundkonzepte an:

  • 1. Big-Endian-Modus (Big Endian): Speichern Sie die höherwertigen Bytes an der Startadresse (speichern Sie die höherwertigen Bytes der Daten in den niederwertigen). in der Reihenfolge von niedriger Adresse zu hoher Adresse) Bytes)

  • 2. Little-Endian-Modus (Little Endian): Speichern Sie die niederwertigen Bytes an der Startadresse (speichern Sie die niederwertigen Bytes in den höherwertigen Bytes von die Daten in der Reihenfolge von der niedrigen zur hohen Adresse)

Im Computerbereich hängt Endianness mit der Hardwarearchitektur zusammen.

Zum Beispiel: Beispiel: Eine Variable a = 0x11223344, das höchste Byte dieser Variablen ist 0x11 und das niedrigste Byte ist 0x44. Gehen Sie davon aus, dass die Adressen im Speicher wie folgt zugewiesen werden (die Adressen sind alle aufeinanderfolgend):

Im Big- und Small-Endian-Modus werden die Inhalte wie folgt gespeichert

(1) Speicherung im Big-Endian-Modus (Speicheradresse beträgt 16 Bit)

Adressdaten

0x0004 (hohe Adresse) 0x44

0x0003 0x33

0x0002 0x22 003 0x22

0x0002 0 x33

0x0001( Niedrige Adresse) 0x44

2. Big-Endian und Little-Endian

Die Definition von Big-Endian und Big-Endian wurde zuvor kurz erläutert und anhand einfacher Beispiele erläutert. Als nächstes werden detaillierte Beispiele gegeben Zur Veranschaulichung:

1. Big-Endian: Oder Big-Endian-Reihenfolge

Ein Typ: die Speichersituation der int32-Zahl 0X0A0B0C0D

Die Daten sind in 8 Bits

Im Beispiel , das höchste Das gültige Bit besteht darin, 0x0A an der niedrigsten Speicheradresse zu speichern, gefolgt von 0x0B an nachfolgenden Adressen, ähnlich der Reihenfolge der hexadezimalen Bytes von links nach rechts.

Die Daten liegen in 16 Bit vor. Die höchste 16-Bit-Einheit 0x0A0B wird in den unteren Bits gespeichert. Little-Endian: Oder Little-Endian. Die Daten liegen in 8 Bit vor

Die Go-Sprache verwendet standardmäßig Big Endian oder Little Endian

Im Beispiel ist das niedrigstwertige Bit die bei 0x0D gespeicherte Speicheradresse und wird der Reihe nach an den nachfolgenden Adressen gespeichert.

Daten liegen in Einheiten von 16 Bit vor

Die Go-Sprache verwendet standardmäßig Big Endian oder Little Endian

Die niedrigste 16-Bit-Einheit 0x0C0D wird im unteren Bit gespeichert.

3. ZusammenfassungDie Go-Sprache verwendet standardmäßig Big Endian oder Little Endian

Eine CPU mit Big-Endian-Reihenfolge und eine CPU mit Little-Endian-Reihenfolge sind nicht nur hinsichtlich der Bytes, sondern auch hinsichtlich der Bits gegensätzlich.

Zum Beispiel die Speicherung von 0x01 im Speicher 00000 00000000 00000000 00000001 Hohe Speicherbits

Little Endian: Niedrige Speicherbits 10000000 00000000 00000000 00000000 Hohe Speicherbits

AnwendungDie Go-Sprache verwendet standardmäßig Big Endian oder Little Endian

Tatsächlich sind die oben aufgeführten Dinge letztendlich für die Schritt Es geht um die Entscheidungen, wenn es kommt zur Netzwerkübertragung und Dateispeicherung in Golang. Im Allgemeinen kann die Bytereihenfolge der Netzwerkübertragung Big-Endian oder Little-Endian sein, abhängig von den Protokollbestimmungen der Kommunikationsparteien beim Start der Software. Das TCP/IP-Protokoll RFC1700 schreibt die Verwendung der „Big Endian“-Bytereihenfolge als Netzwerk-Bytereihenfolge vor, und diese Regel muss während der Entwicklung befolgt werden. Standardmäßig verwendet Golang die Big-Endian-Reihenfolge. Einzelheiten finden Sie im Codierungs-/Binärpaket in Golang, das die Verwendung der Big- und Little-Endian-Reihenfolge ermöglicht Der RPC-Aufrufprozess wird im Big-Endian-Modus codiert

Das obige ist der detaillierte Inhalt vonDie Go-Sprache verwendet standardmäßig Big Endian oder Little Endian. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage