Autor Beitrag
sisc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38


D3 Prof
BeitragVerfasst: Mi 18.05.05 17:21 
Hi!
Ich wollte einen Dateiheader auslesen. Die Angaben sind aber in Hex und ich brauche sie normal. Kann mir jemand sagen, wie das Hexadezimalsystem funktioniert? Ist sicherlich nicht so schwer. Ich kenn es nur nicht! :autsch:
Danke für eure Hilfe!
Gruss
sisc


Moderiert von user profile iconChristian S.: Topic aus Sonstiges verschoben am Mi 18.05.2005 um 17:23
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Mi 18.05.05 17:26 
0 :arrow: 00
1 :arrow: 01
2 :arrow: 02
3 :arrow: 03
4 :arrow: 04
5 :arrow: 05
6 :arrow: 06
7 :arrow: 07
8 :arrow: 08
9 :arrow: 09
10 :arrow: 0A
11 :arrow: 0B
12 :arrow: 0C
13 :arrow: 0D
14 :arrow: 0E
15 :arrow: 0F
16 :arrow: 10
17 :arrow: 11
18 :arrow: 12
19 :arrow: 13
20 :arrow: 14
21 :arrow: 15
22 :arrow: 16
23 :arrow: 17
24 :arrow: 18
... :arrow: ...
255 :arrow: FF

;)
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 18.05.05 17:29 
echt jetzt ? ich dachte immer die 10 kommt vor dem A, aber sind ja 16 ziffern oder ? 0..9 A..F ??? ich kenn mich da net so aus, man kann ja schließlich alles nachlesen/umwandeln :mrgreen:
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 18.05.05 17:31 
Ja es sind 16 Zeichen: 0..9 (10) + A..F (6)
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 18.05.05 17:34 
wieder was gelernt, ich dachte 0F wäre 16, aber 10 ist 16 muss ja auch so sein :!: :autsch:
sisc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38


D3 Prof
BeitragVerfasst: Do 19.05.05 08:10 
Hi!
Heißt das dann 9 normale Blöcke(z.B. 00) und dann sechs Hexa-Blöcke(z.B. 0F) usw., oder!? :roll:
Gruss
sisc
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Do 19.05.05 09:58 
Normalerweise hast du im Hexadezimalsystem immer zwei Zahlenpaare. Also z.B. 5E oder 74. Das vorab. Das ist einfach eine Sache des Stils. Das ist etwa so, wie wenn wir bei einer Fünf nicht 5 sondern 05 schreiben würden.

In unserem "normalen" Dezimalsystem gibt es jetzt folgende Ziffern: 0, 1, 2, 3, 4, 5, 6, 7, 8 und 9. Aus diesen Ziffern bilden wir damit Zahlen, indem wir sie entweder so einfach lassen oder indem wir verschiedene oder gleiche Ziffern zusammenstellen.

Im Hexadezimalsystem funktioniert das genauso. Nur hat man andere Ziffern. Es kommen nämlich noch welche dazu, so das es dann aus folgenden Ziffern besteht: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E und F. Die Reihenfolge der Wertigkeit ist von niedrig zu hoch. D.h. die Null ist am tiefesten und das F am höchsten.

Man fängt also auch mit der 0 an zu zählen: 00 (zwei Nullen wegen dem "Stil" ;) s.o.). Dann geht's mit der 1 weiter: 01. Und immer so weiter:
02
03
04
05
06
07
08
09

So. Und an dieser Stelle würden wir jetzt in unserem Dezimalsystem eine 10 schreiben, weil wir nach der 9 keine höhere Ziffer kennen. Im Hexadezimalsystem aber sehr wohl. Sogar sechs Stück: A, B, C, D, E und F. Wir zählen also einfach weiter:
0A
0B
0C
0D
0E
0F

Jetzt haben wir das Ende der verfügbaren Ziffern erreicht. Wir müssen an der ersten Ziffer im Doppelblock was ändern. Und da zählen wir jetzt einfach um eins hoch: Aus der 0 wird die nächsthöhere Ziffer, die 1. Und nun können wir an der zweiten Stelle wieder was verändern:
10
11
12
13
14
15
16
17
18
19

Jetzt wieder aufpassen. Wir kennen nach der 9 ja noch eine höhere Ziffer, also nichts an der ersten Ziffer verändern, sondern immer noch an der zweiten:
1A
1B
1C
1D
1E
1F

Jetzt sind wir wieder am Ende: Neue Ziffer an Stelle eins im Doppelblock.
20
21
......

So geht das dann weiter, bis wir am FF angekommen sind. Wir kennen weder für die erste Ziffer, noch für die zweite eine Ziffer mit höherer Wertigkeit. Jetzt müssen wir uns entscheiden, ob wir einen neuen Block anfangen und die FF einfach so lassen oder ob wir mit unserem System weitermachen. In Hex-Editoren wirst du nur das erste System finden. Wir hängen also einfach einen neuen Block an, wenn wir weitermachen wollen:
FF 00

ACHTUNG: Da wird nichts zusammengezählt! Das sind dann einfach nur zwei Werte die du hast: Ein FF (255 im Dezimalsystem) und eine 00 (0 im Dezimalsystem).

Bei System 2 hängen wir einfach noch eine Ziffer davor: 100

Weitergezählt wird dann wie normal:
100
101
102
...
10F
110
111
112
...
1FE
1FF
200
201
...

Ich hoffe mal, dass dir das das Hexadezimalsystem ein wenig näher gebracht hat. ;)
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Do 19.05.05 15:04 
Und das Umrechnen von Hexadartsellung in die Dezimaldarstellung ist auch einfach. Die Buchstaben musst du dafür nur in den Dezimalwert wieder ändern, sprich:
A=10
B=11
...
F..15

Damit ergibt sich folgende Formel zur Umrechnung (für 3 Stellen das Beispiel XYZ):
Dezimalwert:=X*(16^2)+Y*(16^1)+Z*(16^0)
Ein 3-stelliges Zahlenbeispiel
XYZ=AF0
-->2800
UC-Chewie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 531

WinXP
D5 Ent
BeitragVerfasst: Do 19.05.05 21:44 
Wie funktioniert das Hexadezimalsystem?

Ganz genauso wie jedes andere, nach links größerwerdende Zahlensystem auch.
Zahlen bestehen aus einzelnen Ziffern, die Position einer Ziffer bestimmt den Koeffizienten. Dieser setzt sich nämlich aus zusammen aus der Basis des Zahlensystem potenziert ("hoch") mit der Position, von rechts nach links, angefangen bei 0 (*).

Das gilt erst mal für alle Base, egal ob Hexadeziamlsystem (16), Dezimalsystem (10) oder sonstwas.

Ein Beispiel aus "unserem" Zehnersystem:
437 = 7 * 10^0 + 3 * 10^1 + 4 * 10^2

Wir sehen also immer die Ziffern multipliziert mit der Basis hoch der Position.

Beim Hexadezimalsystem geht das genauso, nur dass wir, da es 16 Ziffern gibt, zusätzlich zu den uns bekannten Ziffern die Buchstaben a bis f benutzen. Unsere Ziffern sehen also wie folgt aus:

0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F


Nun können wir ganz leicht verstehen, wie eine Zahl aufgebaut ist, z.B. 4E 56:

4E56 = 6 * 16^0 + 5 * 16^1 + 14 * 16^2 + 4 * 16^3 (rechts des Gleichheitszeichen steht alles im Dezimalsystem).

Genauso funktionierts auch binär, oktal und zu anderen Basen, für die mir jetzt die lateinischen oder griechischen Begriffe fehlen.



(*) Die Araber schreiben von rechts nach links, und genauso gehts auch mit den Zahlen - schließlich benutzen wir ja das arabische Zahlensystem

_________________
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
sisc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38


D3 Prof
BeitragVerfasst: Fr 20.05.05 10:28 
Danke!
Jetzt hab ich's kapiert!
Gruss
sisc :roll: :roll: :roll: