Aufgabe 3 Endianess

enomis
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 7. Mär 2008 18:30

Aufgabe 3 Endianess

Beitrag von enomis »

Hallo,

kann es sein, dass es in der Tablle in der ersten horizontalen Zeile statt " 1. Byte 2. Byte 3. Byte 4. Byte " "4. Byte 3. Byte 2. Byte 1. Byte" heißen muss?

denn die Definition im Skript (und auch bei anderen Quellen) ist:

Big Endian:
• das Byte mit höchstwertigen Bits wird zuerst
gespeichert, d.h. an der kleinsten Speicheradresse.

wenn man nun die Zahl 17173193 (Dezimal) = 1 00000110 00001010 11001001(Binär) hat, wäre das Byte mit den höchstwertigen Bits 0000 0001. Dieses ist also das 1. Byte das in den Speicher kommt. Laut der Tabelle wie sie abgebildet ist, wäre es aber das 4.Byte!?

Remake
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 15. Dez 2007 10:40

Re: Aufgabe 3 Endianess

Beitrag von Remake »

Denk auch, dass es ein Fehler auf dem ÜB ist, da doch die höherwertigen Bytes eines Wortes zuerst gespeichert werden (siehe Schnelltest). So wie es momentan ist, müsste es im Little Endian Format sein.

Benutzeravatar
oren78
BSc Spammer
BSc Spammer
Beiträge: 1373
Registriert: 17. Nov 2006 17:47
Wohnort: Darmstadt

Re: Aufgabe 3 Endianess

Beitrag von oren78 »

das hatte mich in der übung letzte woche auch schon gewundert, war also doch ein fehler... 8)
"Unter allen menschlichen Entdeckungen sollte die Entdeckung der Fehler die wichtigste sein.", Stanisław Jerzy Lec

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: Aufgabe 3 Endianess

Beitrag von thomas_kalbe »

ja, sorry. Ich hatte das verbockt und habe es geändert (sollte im Laufe des Tages mit dem Lösungsvorschlag hochgeladen werden).

Edit: ist sogar schon da.

grüße,
thomas

dietrich_p
Erstie
Erstie
Beiträge: 21
Registriert: 30. Okt 2008 21:09

Re: Aufgabe 3 Endianess

Beitrag von dietrich_p »

Das 2. Byte der Zahl 232430 lautet derzeit im Lösungsvorschlag "0000 0001". Es soll doch bestimmt "0000 0011" heißen, oder?

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: Aufgabe 3 Endianess

Beitrag von thomas_kalbe »

ok, da war tatsächlich was nicht in Ordnung...

Deshalb nochmal langsam und von Vorne:

Nehmen wir doch mal das erste Beispiel, die 17173193.
Zunächst wandeln wir dies in Hex und bekommen:

0x00160AC9

Nun bedeutet "Big Endian", dass das "große Ende" zuerst kommt.
D.h. im Speicher würden wir (beginnend ab Adresse 0x100) die Zahl so ablegen (Big Endian):

oben Speicheradresse, unten Inhalt):
0x100 0x101 0x102 0x103
0x00 0x16 0x0A 0xC9

und in Little Endian (das "kleine Ende" kommt zuerst):

(oben Speicheradresse, unten Inhalt):
0x100 0x101 0x102 0x103
0xC9 0x0A 0x16 0x00

Jetzt hat sich in der Literatur aber eingebürgert, dass zunächst das 4. Byte angegeben wird, dann das 3. usw. (deshalb die erste Änderung der Lösung, wo ich es zunächst andersherum hatte)
Also schreiben wir

4. Byte 3. Byte 2. Byte 1. Byte
0xC9 0x0A 0x16 0x00

-- Big Endian order!

Binär dann einfach
11001001 00001010 00010110 00000000

huch, was fällt auf? Das ist in der Lösung leider auch schon nicht ganz richtig ( :oops: ) (zumindest ist es ähnlich...)

Ok, dann weiter:

9534532 entspricht Hex 0x00917C44
Also:

4. Byte 3. Byte 2. Byte 1. Byte
0x44 0x7C 0x91 0x00

oder binär:
01000100 01111100 10010001 00000000 -- juhu, das steht sogar schon da.

Weiter: 232430 ist 0x00038BEE

4. Byte 3. Byte 2. Byte 1. Byte
0xEE 0x8B 0x03 0x00

also
11101110 10001011 00000011 00000000

Ok, Dietrich_p, Du hast Recht, da muss 0011 stehen

Nun zur 2056: 0x00000808

Also:
4. Byte 3. Byte 2. Byte 1. Byte
0x08 0x08 0x00 0x00
bzw.
00001000 00001000 00000000 00000000 ; ok, stimmt.

Die letzte Zahl:
10234532_10 --> 0x009C2AA4

4. Byte 3. Byte 2. Byte 1. Byte
0xA4 0x2A 0x9C 0x00
bzw.
10100100 00101010 10011100 00000000 -- stimmt auch, steht so schon drin.

D.h. bei 17273193 und 232430 gab's Dreher, ansonsten sollte es richtig sein; werde es gleich reparieren.

Danke!

- t

karimhanif
Mausschubser
Mausschubser
Beiträge: 86
Registriert: 3. Mär 2009 14:13

Re: Aufgabe 3 Endianess

Beitrag von karimhanif »

wäre es unter umständen möglich von euch Versionen auf den jeweiligen korrigierten (oder am besten gleich auf allen) Blättern anzugeben...?
ich habe mindestens jedes dritte übungsblatt deswegen schon mehrfach ausdrucken müssen...

ist halt etwas blöd bei unserer Druckquota ;-)

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: Aufgabe 3 Endianess

Beitrag von thomas_kalbe »

Du kannst Dich an das Datum auf dem Blatt halten, da das jedesmal automatisch aktualisiert wird.
(bei Blatt 4 steht da jetzt 3. März 2009)
Ist das in Ordnung?

- t

karimhanif
Mausschubser
Mausschubser
Beiträge: 86
Registriert: 3. Mär 2009 14:13

Re: Aufgabe 3 Endianess

Beitrag von karimhanif »

oh super, hatte gedacht es wäre "fix" seit dem erscheinen des übungsblattes und habe es daher nicht weiter beachtet, danke für den tipp ;-)

Antworten

Zurück zu „Archiv“