In Little Endian & Big Endian auslesen? Wie mache ich das?
Guten Tag, ich hoffe ich bin hier im richtigen Forum. Ich bin ein kompletter Anfänger in Informatik und Technik und habe ein Informatik Seminar für Anfänger belegt und habe ein Verständnisproblem bei einer Übungsaufgabe, die ich in einem Lehrbuch gefunden habe. Ich bin ein kompletter Anfänger, deshalb entschuldige ich mich jetzt schon mal für banale Sachen, die ich nicht verstehe.
Die Aufgabe lautet:
Lesen Sie den folgenden Hexadezimalwert byteweise aus und zwar in
97 A1 CD
a) Big Endian
b) Little Endian
Geben Sie zum Rechenweg den Hexadezimalwert und den Dezimalwert an. Nennen Sie zudem den Binärwert.
Jetzt verstehe ich folgendes nicht: Warum ist dieser Hexadezimalwert in drei 2er Gruppen sortiert?
Können diese zwei Zeichen getrennt werden oder gehören sie zusammen (Also kann ich nur die 97 als ganzes ansehen oder die 9 und die 7 als eigene Zeichen)?
Woher weiß ich zudem, welche Gruppe die Höchstwertigste ist?
Und wie soll ich einen Rechenweg zu einem Hexadezimalwert angeben, wenn es schon ein Hexadezimalwert ist?
2 Antworten
Zwei Stellen im Hexadezimalsystem repräsentieren genau ein Byte. Darum schreibt man das auch so und man kann leicht erkennen, dass es um die 3 Byte 97, A1 und CD geht.
Du kannst die 9 und 7 noch als sogenannte Nibbles oder Half-Bytes sehen wenn du das möchtest, wird aber idR nicht gemacht.
Es geht hier lediglich um die Unterschiede zwischen Littel und Big Endian.
Da hier steht Byteweise auslesen würde jeder Computer egal ob Little oder Big Endian 97 A1 CD sagen, weil die Endianess auf Subbytes keine Aussage macht und somit jedes Byte unverändert bleibt. Sprich ich würde die oben genannte Struktur als Array interpretieren und nicht als zusammenhängenden Datentyp.
Wenn wir aber zB das Word 97 A1 CD 00 in Little und Big Endian ausgeben sollen ergibt das
Big Endian: 97 A1 CD 00
Little Endian: 00 CD A1 97
Die Schreibweise ist in solchen Fällen eigentlich immer Big Endian und das erst genannte Byte ist das höherwertigste.
Ich verstehe, also verändert sich nur die Reihenfolge von dem Hexadezimalwert?
Ja also Little und Big Endian ist nur die Bytereihenfolge bei Mehrbytewerten.
Sprich alle Daten die mehr als ein Byte haben sind davon betroffen. Little Endian Computer schreiben dabei das niederwertigste Byte in die kleine Speicheradresse und Big Endian Computer schreiben das höchstwertige Byte in die kleine Speicheradresse.
Ist es immer so, dass das erste Byte, immer das höchstwertigste ist unabhängig von den Zahlen?
Höchstwertig ist keine Eigenschaft von Zahlen. Nehmen wir zB die Dezimalzahl 18, dann ist die 1 also die Zehnerstelle die höchstwertigste Stelle und und 8 also die Einerstelle die niederwertigste.
Das selbe gilt auch für die Bytes. Das höchstwertigste Byte sind eben die höchstwertigsten Stellen in der jeweiligen Zahl.
Das mit dem Rechenweg versteh ich auch nicht ganz, aber du kannst natürlich die Umrechnung in Dezimal und Binär angeben.
Weil man mit zwei hexadezimalen Zeichen genau 8 Bit repräsentieren kann. Liegt daran, dass die Basis des Zahlensystems auch 2^n ist. 2^4 = 16, also repräsentierst du mit einer hexadezimalen Ziffer genau vier Bit. Big/Little Endian bezieht sich auf die Reihenfolge der Bytes. Informationen dazu liefert sogar Wikipedia zuhauf.
Viele Dank für die Antwort. Ich denke, dass ich es jetzt verstehe. Ich habe bereits auf diversen Seiten recherchiert, aber die haben mir nicht wirklich weiter geholfen, da das alles zu viel neue Information auf einmal war.
Vielen Dank für die ausführliche Antwort.
Ich verstehe, also verändert sich nur die Reihenfolge von dem Hexadezimalwert? Ist es immer so, dass das erste Byte, immer das höchstwertigste ist unabhängig von den Zahlen?
Und was ist denn der Rechenweg für den Hexadezimalwert? Es ist doch bereits ein Hexadezimalwert oder verstehe ich wieder etwas falsch.