www.wikidata.de-de.nina.az
Die Byte Reihenfolge englisch byte order oder endianness bezeichnet in der Informatik die Speicherorganisation fur einfache Zahlenwerte in erster Linie die Ablage ganzzahliger Werte Integer im Arbeitsspeicher Die ersten Rechnerarchitekturen haben die Darstellung mehrstelliger Zahlen aus dem Alltag entsprechend der Konvention des Stellenwertsystems ubernommen zunachst fur dezimal dann auch fur binar dargestellte Zahlen In dieser Konvention beginnt die Notation einer Zahl mit der Ziffer an der hochstwertigen Stelle Addition Subtraktion und Multiplikation beginnen aber mit der niedrigstwertigen Ziffer der Einerstelle Solange man innerhalb ahnlicher Rechnerarchitekturen blieb musste man sich nicht um die Endianness kummern sie entsprach ja der gewohnten Da die genannten drei mathematischen Grundfunktionen jedoch einen Maschinenzyklus fruher starten konnen wenn man die Bitreihenfolge umkehrt haben in der Folge einige Hersteller ein entsprechendes Architekturprinzip erstellt Das heisst die Einerstelle wird an die Anfangsadresse gelegt und die 3 genannten Algorithmen schreiten nach rechts in die hoheren Stellen und Adressen fort Diese Abweichung vom Gewohnten machte die Begriffsbildung Endianness erforderlich Beim big endian wortlich etwa grossendigen siehe auch Abschnitt Etymologie Format wird das hochstwertige Byte zuerst gespeichert d h an der kleinsten Speicheradresse Allgemein bedeutet der Begriff dass bei zusammengesetzten Daten die hochstwertige hochstrangige Komponente zuerst genannt wird wie etwa bei der deutschen Schreibweise der Uhrzeit Stunde Minute Sekunde Beim little endian wortlich etwa kleinendigen Format wird dagegen das niedrigstwertig Byte an der Anfangsadresse gespeichert also die niedrigstwertig Komponente zuerst genannt wie bei der herkommlichen deutschen Datumsschreibweise Tag Monat Jahr Im Sprachgebrauch werden die beiden Varianten in der Computertechnik oft auch nach den Herstellern von Mikroprozessoren benannt die die jeweilige Variante in mehreren Prozessorfamilien verwenden bzw verwendet haben Motorola Format steht fur big endian Intel Format fur little endian Werden Daten bitweise seriell ubertragen so ist zusatzlich die Bit Reihenfolge festzulegen Auch hier sind unterschiedliche Varianten anzutreffen Most Signifikant Bit First MSb wenn das hochstwertige Bit eines Bytes zuerst ubertragen wird verwendet etwa I C Least Signifikant Bit First LSb in der das niedrigstwertige Bit eines Bytes zuerst ubertragen wird ist zum Beispiel fur RS 232 1 und Ethernet Frames festgelegt Inhaltsverzeichnis 1 Vereinbarungen 2 Beispiel Speicherung einer 32 Bit Ganzzahl in 4 Bytes 3 Reihenfolge der Ziffern innerhalb von Zahlen in der Sprache 4 Kontexte des Byte Reihenfolge Problems 5 Plattformubergreifende Darstellung von Zahlen 5 1 Nuxi 6 Wichtige Eigenschaften 6 1 Big Endian Format 6 2 Little Endian Format 7 Beispiel Interpretation eines Hexdumps 8 Verwendung und Hardware Beispiele 8 1 Big endian 8 2 Little endian 8 3 Mischvarianten bi endian 8 4 Dateiformate 9 Etymologie 10 Weblinks 11 Einzelnachweise und AnmerkungenVereinbarungen BearbeitenFolgende Aussagen uber die in der Literatur hochgradiger Konsens besteht seien als Ausgangsbasis fur die Diskussion und Definition der Sachverhalte explizit gemacht Der Arbeitsspeicher kennt eine kleinste adressierbare Einheit auch Speicherstelle genannt In diesem Artikel sei sie exemplarisch das Byte Es besteht aus 8 Bits und sein Inhalt wird in diesem Artikel vorwiegend mit zwei hexadezimalen Ziffern angegeben wobei jede Ziffer fur 4 Bits entsprechend einem Halbbyte Nibble steht Die kleinste adressierbare Einheit konnte aber auch aus einer anderen Anzahl von Bits bestehen oder wenn die Maschine im Dezimalsystem rechnet eine Dezimalziffer beherbergen Die Byte Adressen des Arbeitsspeichers sind nicht negative ganze Zahlen Ein einfaches Datenfeld wird im Arbeitsspeicher in einem zusammenhangenden Speicherbereich einer luckenlosen Folge von Adressen abgelegt der eine Anfangs Byte adresse und eine Byte Lange hat Die Maschinenbefehle adressieren ein Datenfeld uber seine Anfangsadresse 2 Ganz analog spielt in Assemblersprachen und in hoheren Programmiersprachen die Anfangsadresse die Rolle eines Zeigers zum Datenfeld Das Byte an der Anfangsadresse wird haufig als das linke das an der Endadresse als das rechte Byte bezeichnet siehe Bit Reihenfolge An diese Orientierung halten sich horizontale graphische Darstellungen von Datenfeldern sehr haufig aber nicht immer Ein Byte innerhalb eines einfachen Datenfelds hat zu dessen Anfangsadresse einen nicht negativen Abstand der als Offset bezeichnet wird Betrachtet werden numerische Daten die im Speicher entsprechend einem Stellenwertsystem dargestellt sind Bei einem solchen System kommt einer Ziffer neben ihrem Wert als einzelnem Zeichen noch ein von ihrer Position innerhalb der ganzen Zahl abhangiger Stellenwert zu auch Wertigkeit oder Signifikanz genannt Die in Handbuchern und unten vorkommenden hexadezimalen Notationen 3A4B5C6D sub h sub oder 0x3A4B5C6D bezeichnen einen Zahlwert und zwar die Zahl 978 017 389 und nicht ihre Darstellung im Speicher es sei denn man meint die Speicherung 3A sub h sub 4B sub h sub 5C sub h sub 6D sub h sub Will man eine andere Art der Speicherung derselben Zahl 0x3A4B5C6D angeben so muss man auf andere Notationen ausweichen wie auf 6D sub h sub 5C sub h sub 4B sub h sub 3A sub h sub oder 0x6D 0x5C 0x4B 0x3A Generell multipliziert ein Links Shift eine Binarzahl mit einer Zweierpotenz verschiebt also die Bits in Richtung Big End Richtung most significant bit und ein Rechts Shift dividiert durch eine solche verschiebt die Bits in Richtung Little End Richtung least significant bit Die Shift Operationen induzieren eine eindeutige konsistente Adressierung von den Bytes auf die Bits s dazu den Abschnitt Adressierung von Bits 3 Die links rechts Orientierung bei Shift Instruktionen ist etwas Anderes und vollig unabhangig von derjenigen bei der Adressierung mit links niedrige und rechts hohe Adresse Steigt bei einer im Speicher abgelegten Zahl die Wertigkeit einer Stelle mit der wachsenden Adresse dann ist sie im Little Endian Format dargestellt Fallt bei einer im Speicher abgelegten Zahl die Wertigkeit einer Stelle mit der wachsenden Adresse dann ist sie im Big Endian Format dargestellt Wird bei einem Computersystem eines dieser beiden Formate fur die Speicherung numerischer 4 Felder durchgehalten so wird das erste als Little Endian das zweite als Big Endian System bezeichnet Beispiel Speicherung einer 32 Bit Ganzzahl in 4 Bytes Bearbeiten nbsp Byte Adresse Big Endian Mixed Endian Little Endian10000 0A 0B 0D10001 0B 0A 0C10002 0C 0D 0B10003 0D 0C 0ADas Beispiel in der Grafik stellt die Ganzzahl 168 496 141 als 32 Bit Integer Wert dar hexadezimal 0A0B0C0D sub h sub gespeichert in 4 Bytes ab einer angenommenen Speicheradresse von 10000 Big endian speichert 168496141 0A0B0C0D sub h sub in der Reihenfolge 0A sub h sub 0B sub h sub 0C sub h sub 0D sub h sub Little endian speichert168496141 0A0B0C0D sub h sub in der umgekehrten Reihenfolge der Bytes 0D sub h sub 0C sub h sub 0B sub h sub 0A sub h sub Einige altere Systeme z B PDP 11 speichern die Bytes auch in der Reihenfolge 0B sub h sub 0A sub h sub 0D sub h sub 0C sub h sub aber nicht als 0C sub h sub 0D sub h sub 0A sub h sub 0B sub h sub Dies wird als mixed endian oder auch middle endian bezeichnet Einige Systeme speichern sowohl big endian als auch little endian was als bi endian bezeichnet wird Reihenfolge der Ziffern innerhalb von Zahlen in der Sprache BearbeitenAuch die gewohnliche Darstellung von Dezimal Zahlen ist im Sinne der Leserichtung der meisten europaischen Sprachen von links nach rechts big endian Dies kommt dadurch zustande dass die Ziffernreihenfolge der indisch arabischen Zahlen bei den Schriften Mitteleuropas beibehalten wurde Im Arabischen das sich von rechts nach links liest werden die Zahlen gleich geschrieben d h fur Zahlen unter 100 werden sie als little endian gelesen fur Zahlen ab 100 werden sie big endian gelesen Auch im Deutschen werden die Zahlen von 13 bis 99 little endian ausgesprochen Ein und Zwanzig die Eins als weniger wertige Stelle wird zuerst gesprochen diese Reihenfolge gibt es auch in anderen Sprachen Ein Beispiel fur Dezimalzahlen In der gebrauchlichsten Darstellung big endian wird die Dezimalzahl Eintausend zweihundert dreissig dargestellt als 1230 wobei die 1 die Wertigkeit 1000 hat die 2 die Wertigkeit 100 und die 3 die Wertigkeit 10 In der Little Endian Darstellung ist es umgekehrt so dass die Darstellung der Zahl 0321 ware ausgesprochen vielleicht Dreissig Zweihundert Eintausend Kontexte des Byte Reihenfolge Problems BearbeitenDas Problem der Byte Reihenfolge betrifft solche Datentypen die aus mehreren Byte zusammengesetzt sind und vom jeweiligen Prozessor direkt unterstutzt werden also hauptsachlich Ganzzahl und Gleitkommatypen sowie Datentypen die vom Prozessor effektiv als solche interne Datentypen behandelt werden z B UTF 16 Um dieses Problem bei Unicode Zeichen zu umgehen wird oft eine Bytereihenfolge Markierung BOM benutzt Die Zeichenfolge Die drei Zeichen 6 Byte mit BOM ein Zeichen 2 Byte als UTF 16 Kodierung in der Byte Darstellung von Hex Editoren 8 Byte stellt sich fur die beiden unterschiedliche Byte Reihenfolgen etwa so dar Big Endian FE FF 00 44 00 69 00 65 thy D i e Little Endian FF FE 44 00 69 00 65 00 ythD i e Plattformubergreifende Darstellung von Zahlen BearbeitenUm einen fehlerfreien Datenaustausch zwischen Computern verschiedener Plattformen zu ermoglichen ist bei Netzwerkprotokollen immer die Byte Reihenfolge festgeschrieben Diese wird als Network Byte Order bezeichnet Die naturliche Byte Reihenfolge des Systems wird demgegenuber als Host Byte Order bezeichnet Arbeitet das System nicht mit dieser Byte Reihenfolge so muss diese im Netzwerktreiber beziehungsweise zum Teil im Anwendungsprogramm entsprechend umgewandelt werden Im Falle des heute vornehmlich verbreiteten Internetprotokoll Satzes entspricht die Network Byte Order dem Big Endian Format Es existieren jedoch noch immer Protokolle die eine andere Byte Reihenfolge verwenden Daruber hinaus gibt es Datentypen die nicht oder nicht nur durch die Endianness charakterisiert sind wie z B Gleitkommazahlen bei deren Umwandlung auch Genauigkeitsverluste moglich sind In der auf den meisten Betriebssystemen angebotenen BSD IP Socket API existieren zur Umwandlung der Byte Reihenfolge sechs Funktionen Datentyp Wortbreite UmwandlungHost to network Network to hostdouble 64 bit htond ntohd long 32 bit htonl ntohl short 16 bit htons ntohs Die korrekte Umwandlung ist garantiert fur vorzeichenlose Ganzzahlen Negative Ganzzahlen werden korrekt umgewandelt wenn sie im Zweierkomplement dargestellt sind und die Bitbreite ubereinstimmt Auf Big Endian Maschinen sind diese Funktionen trivial da Host und Network Byteorder identisch sind Fur Programmierer von Netzwerkanwendungen empfiehlt sich die Verwendung dieser Funktionen da sich der Quellcode dadurch auch auf andere Systeme ubertragen lasst Die Auswahl der zur laufenden Hardware passenden Implementierung geschieht normalerweise implizit durch das Betriebssystem im Notfall auch durch den Benutzer beim Download Der Endianness Typ einer Maschine lasst sich programmtechnisch wie folgt feststellen union uint16 t sixteenBits uint8 t twoBytes 2 test endianness test endianness sixteenBits 1 lt lt 15 0x8000 32768 if test endianness twoBytes 0 0 Das Programm lauft auf einer Big Endian Maschine else Das Programm lauft auf einer Little Endian Maschine In der BitConverter Klasse des NET Framework gibt es das Feld IsLittleEndian 5 das den Endianness Typ der laufenden Hardware abzufragen gestattet 6 Byte Order Probleme konnen auch beim Austausch von Dateien sowie zum Teil beim Austausch von Datentragern zwischen verschiedenen Plattformen auftreten Hier muss entweder durch eindeutige Definition des entsprechenden Dateiformats beziehungsweise Dateisystems oder durch einen Kompatibilitatsmodus der wahrend des Ladens eine Erkennung und eventuelle Umwandlung durchfuhrt Abhilfe geschaffen werden Die Problematik der Darstellung von Daten auf unterschiedlichen Systemen und ihres Austauschs wird ganz allgemein adressiert von der Darstellungsschicht des OSI Modells Nuxi Bearbeiten Scherzhaft wird das Problem verschiedener Endianness unterschiedlicher Architekturen auch oft als NUXI Problem bezeichnet Wenn das Wort UNIX in zwei Zwei Byte Words zwei 16 Bit Register fur UN und IX gespeichert wird liegt es in einem Big Endian System als UNIX im Speicher in einem Little Endian System dagegen wegen der Vertauschung der Bytes in jedem Wort als NUXI auf 32 Bit Systemen stunde dagegen XINU in einem einzelnen 32 Bit Register Wichtige Eigenschaften BearbeitenBei den ersten Mikroprozessoren waren dies nur 4 Bit spater dann lange Zeit 8 Bit Der Adressbus ist aber bei diesen CPUs wesentlich breiter Damit ergab sich die Notwendigkeit Daten mit einem Befehl zu laden oder zu speichern welche auf mindestens zwei gekoppelte Register verteilt waren Um die Komplexitat der CPU zu verringern jede einzelne Transistorfunktion war noch teuer war es einfacher bei jeder Operation automatisch das niederwertige Datenhappchen zu laden wahrend dieser Speicheroperation konnte dann der Befehl weiter dekodiert und gegebenenfalls die weiteren Daten im nachsten Zyklus bearbeitet werden Bei Grossrechnern main frames bestand dieses Problem weniger da sie damals schon mit Datenbus Breiten von 16 bis 48 Bit arbeiteten diese also in einem einzigen Speicherzyklus laden konnten und somit die Byte Reihenfolge keine Rolle spielte Big Endian Format Bearbeiten Da die Maschineninstruktionen die Operanden bei ihrer kleinsten Adresse ansprechen muss bei Operationen deren Algorithmus an der niedrigstwertigen Stelle beginnt auf diese durch eine Erhohung der Anfangsadresse um die Operandenlange 1 positioniert werden Somit ist Addieren Subtrahieren und Multiplizieren geringfugig aufwandiger Dividieren und Vergleichen beginnen dagegen beim hochstwertigen Byte sind deshalb marginal einfacher Dieselben Vergleichsoperationen konnen zum Vergleichen von vorzeichenlosen Big Endian Zahlen wie von kurzen Texten 2 4 oder 8 Byte lang genommen werden da beide lexikographisch sortiert werden Zum Vergleichen von Zeichenketten gibt es beim Grossrechnersystem IBM 370 den Maschinenbefehl CLCL Compare Logical Character Long mit zwei verschieden und beliebig langen Speicheroperanden der die lexikographische Ordnung implementiert 7 Im Big Endian Format sind Hexdumps von Zahlen leichter lesbar da die Reihenfolge der Ziffern die gleiche ist wie in der ublichen Schreibweise des Stellenwertsystems Little Endian Format Bearbeiten Da die Maschineninstruktionen die Operanden bei ihrer kleinsten Adresse ansprechen entfallt bei Operationen deren Algorithmus an der niedrigstwertigen Stelle beginnt so bei Addition Subtraktion und Multiplikation das initiale Inkrementieren mit der Operandenlange Diese Operationen sind somit geringfugig einfacher in der Hardware zu implementieren Um auf einer Little Endian Maschine eine Zwei Byte Zahl in eine Vier Byte Zahl zu verwandeln mussen lediglich zwei mit Null gefullte Bytes am Ende angefugt werden ohne dass sich die Speicheradresse andert Auf einer Big Endian Maschine muss der Wert zuvor im Speicher um zwei Bytes verschoben werden Auch die umgekehrte Umwandlung gestaltet sich einfacher Auf einer Little Endian Maschine werden einfach die hoherwertigen Byte verworfen ohne dass sich die Speicheradresse andert Dagegen ist die Implementierung von Operationen wie der Division deren Algorithmus an der hochstwertigen Stelle beginnt marginal aufwendiger Maschinenbefehle fur das lexikographische Vergleichen von langen Texten fehlen bei manchen Maschinen und mussen durch Unterprogramme wie memcmp 8 ersetzt werden Beispiel fur eine dezimale Little Endian Addition 717 0452 7523 Probe 717 2540 3257 Beispiel Interpretation eines Hexdumps BearbeitenDer Zweck eines Dumps ist die eindeutige Darstellung des Speicherinhalts bspw zur Fehleranalyse Bei Maschinen deren Speicherstelle Byte aus 8 Bits besteht wird hierfur die Darstellung im Hexadezimalsystem gewahlt bei dem die 28 256 162 verschiedenen Inhalte eines Bytes in 2 Hexadezimalziffern ausgedruckt werden Dieser Codierung die sowohl Binarwerte wie Maschineninstruktionen wie Dezimalwerte im BCD Code unmittelbar abdeckt wird ublicherweise eine Spalte beigegeben die jedes einzelne Byte sofern moglich als alphabetisches Zeichen darstellt so dass eventuell im Speicher vorhandene Texte leichter erkannt und lesbar werden Das folgende Beispiel zeigt wie zwei aufeinander folgende Bytes 4 Halbbytes in einem Hexdump mit dem lesbaren hexadezimalen Inhalt a732 zu interpretieren sind Hexdump 2 vorzeichenlose 8 Bit Binarzahlen 1 vorzeichenlose 16 Bit BinarzahlBytes Text Byte0 Bits hex dez Byte1 Bits hex dez Bits hex dezOffset 0 1 0123 4567 0123 4567 0123 4567 89ab cdeflesbar a7 32 2big endianinterne Bitfolge 1010 0111 0011 0010 span style border top 1px solid padding 0 0 0em 1010 0111 span 0011 0010Interpretation 1010 0111 sub 2 sub a7 sub h sub 167 sub 10 sub 0011 0010 sub 2 sub 32 sub h sub 50 sub 10 sub span style border top 1px solid padding 0 0 0em 1010 0111 span 0011 0010 sub 2 sub span style border top 1px solid padding 0 0 0em a7 span 32 sub h sub 42802 sub 10 sub little endianinterne Bitfolge 1110 0101 0100 1100 span style border top 1px solid padding 0 0 0em 1110 0101 span 0100 1100Interpretation 1010 0111 sub 2 sub a7 sub h sub 167 sub 10 sub 0011 0010 sub 2 sub 32 sub h sub 50 sub 10 sub 0011 0010 span style border top 1px solid padding 0 0 0em 1010 0111 span sub 2 sub 32 span style border top 1px solid padding 0 0 0em a7 span sub h sub 12967 sub 10 sub Besteht das Feld nur aus einem einzelnen Byte 8 Bit Binarzahl mit oder ohne Vorzeichen oder einer Ansammlung davon bspw Text im Code ISO 8859 in der Tabelle die Spalten 2 vorzeichenlose 8 Bit Binarzahlen dann unterscheidet sich die Interpretation bei den beiden Formaten big oder little endian nicht Zwar ist zwischen den beiden Formaten die interne Reihenfolge der Bits pro Byte genauso gespiegelt wie die der Bytes pro Integer s Bitwertigkeit Adressierung von Bits Durch die Massgaben der Hexadezimaldarstellung ist der Hexdump aber Byte fur Byte vollkommen festgelegt so dass sich big oder little endian nicht unterscheiden Besteht das Feld aus mehr als einem Byte kommt bei little endian die sogenannte Intel Konvention 9 zum Zuge Diese besagt dass anders als bei big endian das niederwertige Byte auf der niederen Speicheradresse abgelegt wird und die hoherwertigen Bytes auf den nachfolgenden Speicheradressen Im Ergebnis sind bspw bei ganzzahligen Feldern der Lange 16 32 oder 64 Bits die beiden Hexdump Darstellungen byteweise Spiegelungen voneinander Zur Verdeutlichung ist in der Tabelle bei den Spalten 1 vorzeichenlose 16 Bit Binarzahl der Inhalt des ersten der 2 Bytes mit einem Uberstrich versehen Verwendung und Hardware Beispiele BearbeitenBig endian Bearbeiten Das Format big endian wurde z B eingesetzt bei der Motorola 6800 sowie der Motorola 68000 bzw Coldfire Familie den Prozessoren der System z und Sun SPARC CPUs und dem Power bis Power7 und PowerPC Big endian wird verwendet von Mainframe Systemen z B IBM Mainframe sowie MIPS SPARC Power PowerPC Motorola 6800 68k Atmel AVR32 10 und TMS9900 Prozessoren Auch Alpha Prozessoren lassen sich in diesem Modus betreiben dies ist jedoch unublich Mit dem IBM POWER8 wurde die Power Architektur PAPR auf little endian umgestellt jedoch kann der POWER8 ebenfalls noch im Big Endian Modus betrieben werden 11 PowerPC kann bei einigen Modellen auch auf little endian umgeschaltet werden sowie POWER8 vom Little in den Big Endian Modus umgestellt werden IBM forciert jedoch seit dem POWER8 den Little Endian Modus Little endian Bearbeiten Das Little Endian Format wurde ursprunglich beim Prozessor 6502 der NEC V800 Reihe PICmicro oder den Intel x86 Prozessoren verwendet Auch heutige PC Systeme x86 kompatible verwenden little endian Weitere sind Alpha Altera Nios Atmel AVR IBM Power ab POWER8 manche SH3 SH4 Systeme oder VAX Dies sind True Little Endian Systeme Im Gegensatz dazu stehen Architekturen wie manche PowerPC Varianten u a 603 740 750 die nur als Little Endian Systeme konfiguriert werden konnen s u bi endian und aus der Sicht des laufenden Programms dann little endian verwenden Werte im Speicher jedoch weiterhin im big endian Format ablegen Bei Lade und Speicheroperationen wird die Darstellung implizit umgewandelt Bei der Softwareerstellung fur diese Systeme muss dies gegebenenfalls berucksichtigt werden z B bei der Treiber Programmierung Mischvarianten bi endian Bearbeiten Einige Prozessoren z B bestimmte MIPS Varianten und POWER PowerPC PAPR sowie alle Alpha Prozessoren lassen sich zwischen little endian und big endian umschalten Auch Arm Prozessoren inkl des Intel XScales konnen bei Datenzugriffen sowohl in little als auch in big endian betrieben werden auf Code wird bei ARM Prozessoren allerdings immer im Little Endian Format zugegriffen Die von Hewlett Packard und Intel gemeinsam entwickelte Itanium Architektur IA 64 beherrscht ebenfalls beide Byte Reihenfolgen was zur Erleichterung der Portierung von Betriebssystemen hatte dienen sollen insbesondere zwischen HP UX big endian und Windows little endian Dateiformate Bearbeiten Die typische Verwendung einer Byte Reihenfolge in einer Prozessorarchitektur zur Ablage von Werten im Arbeitsspeicher hat Einfluss auf die Byte Reihenfolge von Werten im Sekundarspeicher oft Festplatten Bei der Neuerstellung von Dateiformaten wurde die Byte Reihenfolge der Zahlenwerte so gelegt dass sie beim Speichern und Zuruckladen vom Sekundarspeicher ohne Wandlung auskommen Mittels Speichervirtualisierung konnen Daten auf dem Sekundarspeicher sogar direkt vom Programm angesprochen werden Bedeutsam ist dies fur Containerformate mit einer allgemeinen Strukturdefinition So wurde das Interchange File Format IFF fur Amiga Programme entworfen und entsprechend diesem Motorola 68000 Prozessor wurden die Vier Byte Chunk Langen im Motorola Format big endian abgelegt Auf dem ebenfalls mit Motorola Prozessoren arbeitenden Macintosh Rechnern wurde dieses u a fur das Audioformat AIFF ubernommen Bei der Ubernahme auf die Windows Plattform mit Intel Prozessoren wurden die Chunk Langen umdefiniert auf das Vier Byte Intel Format little endian und das neue allgemeine Containerformat als Resource Interchange File Format RIFF bezeichnet Dieses RIFF Dateiformat ist die Grundlage verbreiteter Dateiformate wie RIFF WAVE wav Dateien fur Audio und Audio Video Interleave avi Dateien fur Video Auch bei Dateiformaten ist es moglich eine Definition zu entwickeln die beide Byte Reihenfolgen der Prozessorarchitekturen zulasst So steht z B bei TIFF Dateien Tagged Image File Format in den ersten zwei Bytes der Datei II fur Intel Format little endian oder MM fur Motorola Format big endian Nachfolgende Langen und Offset Werte in der Datei werden dann entsprechend kodiert Etymologie BearbeitenDie Bezeichnungen gehen auf den satirischen Roman Gullivers Reisen von Jonathan Swift zuruck in dem die Bewohner des Landes Liliput in zwei verfeindeten Gruppen leben Die einen schlagen ihre Fruhstucks Eier am dicken grossen englisch big Ende auf und werden deshalb als Big Ender bezeichnet wahrend die Little Ender die Eier am spitzen kleinen englisch little Ende offnen Swift spielte damit auf die Abspaltung der englischen Kirche Spitz Ender von der katholischen Kirche Dick Ender an in Zusammenhang mit der Byte Reihenfolge wurde dies erstmals 1980 von Danny Cohen in dem Aprilscherz Paper On Holy Wars and a Plea for Peace gebracht 12 Weblinks BearbeitenDanny Cohen On Holy Wars and a Plea for Peace IETF IEN Internet Experiment Note 137 1 April 1980 englisch White Paper Endianness or Where is Byte 0 PDF 155 kB 3bc bertrand blanc com englisch Einzelnachweise und Anmerkungen Bearbeiten MIL STD 188 100 S B 8 Abb 3 1972 oder Datei MIL STD 188 100 char struct for async comms 1972 11 15 svg Dies gilt vor allem fur Maschinen bei denen die Lange der Operanden im Maschinenbefehl codiert ist Nicht in dieses Schema passen Maschinen wie die IBM 1401 bei der sogenannte Wortmarken im Speicher die Ausdehnung der Speicheroperanden bestimmen Solche Maschinen konnen je nach Maschinenbefehl ein aus mehreren zusammenhangenden Speicherstellen bestehendes Feld an seiner niedrigen oder seiner hohen Adresse ansprechen und zum anderen Ende hin abarbeiten so adressiert beispielsweise der Addieren Befehl der IBM 1401 die Operanden an der Einerstelle bei dieser Maschine an der hohen Adresse und arbeitet sich zur Wortmarke vor Beim Dividieren Befehl wird der Dividend an der hochstwertigen Stelle der niedrigen Adresse und der Divisor an der Einerstelle angesprochen IBM 1410 Principles of Operation PDF 22 MB informatik uni stuttgart de S 9 abgerufen am 3 November 2014 Dieser Zusammenhang zwischen Byte und Bit Reihenfolge wurde schon von Cohen p 3 hergestellt Der Vergleich von Zeichenketten durch Maschineninstruktionen oder die C Funktionen memcmp und strcmp startet auf jeder Maschine am Anfangsbuchstaben der Zeichenkette und wertet damit die Stellen niedriger Adresse als hoherrangig agiert also im Big Endian Stil Man nennt diese Ubertragung der Ordnung von den einzelnen Bytes auf mehrstellige Felder wenn sie bei der ersten Stelle beginnt die lexikographische Ordnung strncmp In cppreference com Abgerufen am 26 Marz 2015 englisch Die Erwahnung von Zeichenketten Strings in der Literatur z B Big and Little Endian C style strings und Byte Ordering im Kontext der Endianness beschrankt sich haufig auf die Ubertragungsweise msdn microsoft com Obwohl bspw der C oder C Compiler selbstverstandlich wissen muss fur welchen Endianness Typ er kompiliert gibt es keine standardisierte define Konstante die den Endianness Typ abzufragen gestattet ISO IEC 14882 2014 auch bekannt als C 14 iso org abgerufen am 21 Mai 2016 Damit der potentiell sehr viele Maschinenzyklen umfassende Befehl den Hauptprozessor nicht monopolisiert ist er unterbrechbar konzipiert und kann nach einem Hardwareinterrupt an der Stelle fortgesetzt werden an der er unterbrochen worden ist Siehe ESA 390 principles of operation chapter 7 44 General Instructions SA22 7201 08 ESA 390 Principles of Operation In boulder ibm com Abgerufen am 25 Juni 2014 englisch memcmp In cppreference com Abgerufen am 6 Marz 2014 englisch Gerd Kuveler Dietrich Schwoch Informatik fur Ingenieure und Naturwissenschaftler PC und Mikrocomputertechnik Rechnernetze 5 Auflage Band 2 Vieweg reprint Springer Verlag 2007 ISBN 978 3 8348 9191 4 google de AVR32 Architecture Document PDF 5 1 MB Atmel November 2007 Jeff Scheel Little endian and Linux on IBM Power Systems Answers to your frequently asked questions In IBM Developer 16 Juni 2016 abgerufen am 14 Juli 2019 englisch On Holy Wars and a Plea for Peace Abgerufen von https de wikipedia org w index php title Byte Reihenfolge amp oldid 238747336