Heim > häufiges Problem > Was ist der Unterschied zwischen dem Big-Endian-Modus und dem Little-Endian-Modus?

Was ist der Unterschied zwischen dem Big-Endian-Modus und dem Little-Endian-Modus?

青灯夜游
Freigeben: 2023-01-13 00:23:14
Original
45735 Leute haben es durchsucht

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.

Was ist der Unterschied zwischen dem Big-Endian-Modus und dem Little-Endian-Modus?

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):

Speicheradresse0x4000 0x4001Speicherinhalt

Speicheradresse

0x4000

0 x 4001

0x12Die Speichermethode Der CPU-Speicher im Endian-Modus ist für: Speicheradresse 0x40000x40010x4002

0x34

0x4003

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. ! !

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.

(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

Wenn x0 = 0x11, ist es groß Endian; wenn x0=0x22, ist es Little Endian...

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!

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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage