解説32bit-Endianess.svg |
エンディアン(Q339338):
Deutsch: Ein 32-Bit Integer (0A0B0C0D 16, 168496141 10, 0000 1010 0000 1011 0000 1100 0000 1101 2) als vier Bytes im Speicher abgebildet in Big- und Little-endian Byte-Reihenfolge.
Diese beiden Diagramme zeigen, wie zwei Computer mit unterschiedlicher Endianness eine 32-Bit-Ganzzahl (vier Byte) mit dem Wert 0x0A0B0C0D speichern. In beiden Fällen ist die ganze Zahl in vier Bytes unterteilt, 0x0A, 0x0B, 0x0C und 0x0D, und die Bytes werden in vier aufeinanderfolgenden Byte-Speicherplätzen gespeichert, beginnend mit dem Speicherplatz mit der Adresse a, dann a + 1, a + 2 und a + 3. Der Unterschied zwischen Big- und Little-Endian ist die Reihenfolge der vier Bytes der gespeicherten Ganzzahl.
Das erste Diagramm zeigt einen Computer, der Little-Endian verwendet. Er beginnt die Speicherung der ganzen Zahl mit dem niedrigstwertigen Byte, 0x0D, an der Adresse a und endet mit dem höchstwertigen Byte, 0x0A, an der Adresse a + 3.
Das zweite Diagramm zeigt einen Computer, der Big-Endian verwendet. Hier beginnt die Speicherung der Ganzzahl mit dem höchstwertigen Byte, 0x0A, an der Adresse a und endet mit dem niedrigstwertigen Byte, 0x0D, an der Adresse a + 3.
Da jeder Computer die gleiche Endianness zum Speichern und Abrufen der Ganzzahl verwendet, sind die Ergebnisse für beide Computer gleich. Probleme können auftreten, wenn der Speicher durch Bytes statt durch ganze Zahlen adressiert wird oder wenn Speicherinhalte zwischen Computern mit unterschiedlicher Endianness übertragen werden.
English: 32-bit integer (0A0B0C0D 16, 168496141 10, 0000 1010 0000 1011 0000 1100 0000 1101 2) arranged in memory in big- and little-endian byte order.
These two diagrams show how two computers using different endianness store a 32-bit (four byte) integer with the value of 0x0A0B0C0D. In both cases, the integer is broken into four bytes, 0x0A, 0x0B, 0x0C, and 0x0D, and the bytes are stored in four sequential byte locations in memory, starting with the memory location with address a, then a + 1, a + 2, and a + 3. The difference between big- and little-endian is the order of the four bytes of the integer being stored.
The first diagram shows a computer using little-endian. This starts the storing of the integer with the least-significant byte, 0x0D, at address a, and ends with the most-significant byte, 0x0A, at address a + 3.
The second diagram shows a computer using big-endian. This starts the storing of the integer with the most-significant byte, 0x0A, at address a, and ends with the least-significant byte, 0x0D, at address a + 3.
Since each computer uses its same endianness to both store and retrieve the integer, the results will be the same for both computers. Issues may arise when memory is addressed by bytes instead of integers, or when memory contents are transmitted between computers with different endianness.
Magyar: Hogyan tárolódik egy 32-bites integer, miután a regiszterekből a memóriába kerül egy little/big-endian típusú számítógépes rendszeren. |