Unterschied: Im Big-Endian-Modus wird das High-Byte der Wortdaten an der Low-Adresse gespeichert, und das Low-Byte der Wortdaten wird im Gegensatz zum Big-Endian-Speichermodus an der High-Adresse gespeichert. Endian-Speichermodus, niedrige Adresse Das niedrige Byte der Wortdaten wird an der Adresse gespeichert, und das hohe Byte der Wortdaten wird an der hohen Adresse gespeichert.
Die Betriebsumgebung dieses Artikels: Windows 7-System, Dell G3-Computer.
Verwandte Empfehlungen: „Einführung in die Programmierung“
Der Unterschied zwischen Big-Endian-Modus und Little-Endian-Modus
Zusätzlich zum 8-Bit-Zeichentyp in der C-Sprache gibt es auch einen 16-Bit-Zeichentyp kurzer Typ, 32 Bit langer Typ (hängt vom jeweiligen Compiler ab, z. B. 16-Bit- oder 32-Bit-Prozessoren), da die Registerbreite größer als ein Byte ist, muss eine Konvertierungsmethode angegeben werden Mehrere Wörter. Probleme mit der Festivalanordnung. Dies führt zum Big-Endian-Speichermodus und zum Little-Endian-Speichermodus.
Big-Endian-Modus:
Das High-Byte der Wortdaten wird an der Low-Adresse gespeichert, während das Low-Byte der Wortdaten an der High-Adresse gespeichert wird.
Little-Endian-Modus:
Im Gegensatz zum Big-Endian-Speichermodus wird im Little-Endian-Speichermodus das niedrige Byte der Wortdaten an der niedrigen Adresse und das hohe Byte der Wortdaten gespeichert in der hohen Adresse gespeichert.
Zum Beispiel wird die 16-Bit breite Zahl 0x1234 im Little-Endian-Modus-CPU-Speicher gespeichert (vorausgesetzt, sie wird ab Adresse 0x4000 gespeichert):
Speicheradresse |
0x4000 |
0 x 4001 |
0x4000 | 0x4001 |
0x34 |
Die Speichermethode Der CPU-Speicher im Endian-Modus ist für: | |
0x4000 | 0x4001 | 0x4002 |
0x4003
Inhalte speichern |
0x12 |
0x34 |
0x56 |
0x78 |
Die von uns üblicherweise verwendete X86-Struktur ist der Little-Endian-Modus, während KEIL C51 der Big-Endian-Modus ist. Viele ARM und DSP befinden sich im Little-Endian-Modus. Einige ARM-Prozessoren können per Hardware auch den Big-Endian- oder Little-Endian-Modus auswählen. | Hinweis: Die Verwendung der Big-Endian-Methode zum Speichern von Daten entspricht dem normalen menschlichen Denken, während die Verwendung der Little-Endian-Methode zum Speichern von Daten der Computerverarbeitung förderlich ist. (Mein Verständnis: Der Little-Endian-Modus fügt ein Low-Bit in das Low-Byte ein) |
Mit dem folgenden Code können Sie testen, ob Ihr Compiler Big-Endian oder Little-Endian ist: int main() { short int x; char x0,x1; x=0x1122; x0=*((char*)&x); //低地址单元 ,或者((char*)&x)[0]; x1=*((char*)&x + 1); //高地址单元,或者((char*)&x)[1]; printf("x0=%x\nx1=%x\n",x0,x1); } Nach dem Login kopieren |
Weitere verwandte Artikel finden Sie auf der PHP-Chinese-Website | ! !
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen dem Big-Endian-Modus und dem Little-Endian-Modus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!