Hexadezimal 7. Klasse
Ich verstehe das Hexadezimalsystem noch nicht so richtig... Ich weiß zwar, dass das Hexadezimalsystem von 0 bis F (0 bis 15) geht, aber wie z.B. kriegt man größere Zahlen wie 17, 20, 33 usw. Und was genau bringt mir das Hexadezimalsystem? Und wie berechnet man das?
4 Antworten
Und was genau bringt mir das Hexadezimalsystem?
Informatiker arbeiten häufig mit Binärzahlen. Die vielen Nullen und Einsen machen einen ganz kirre, aber eine Umrechnung ins Hexadezimalsystem und zurück ist sehr einfach: man fasst dabei immer vier Binärstellen zu einer Hexadezimalstelle zusammen. So wird eine Binärzahl leichter lesbar, etwa hex. A081 statt bin. 1010 0000 1000 0001 (wegen A=1010 0=0000 8=1000 1=0001)
Die Bitmuster der 16 Hex-Ziffen kann man schnell auswendig, sodass man beim Umwandeln nicht mal denken muss.
Du musst dir das so vorstellen:
Du hast nur 0en und 1en, also stellst du eine Zahlenreihe auf:
0 0 0 0 0 0
32 16 8 4 2 1
Dieses Modell ist nach links unendlich weit erweiterbar. Wenn du dir nun eine Zahl n nimmst und diese darstellen möchtest rechnest du diese Zahl n durch 2 und gehst danach auf der Skala eins nach links und setzt das Bit (die 0 darüber) zu 1. Beispiel:
Zahl n = 17: 17/2 ist 8,5. Eins nach links steht die 16 --> die 0 über der 16 wird zur 1.
Jetzt rechnest du n-x also im Beispiel oben 17-16.
Jetzt wiederholst du das immer weiter bis der Rest nur noch 1 oder 0 ist. Ist der Rest 1 wird die 0 ganz rechts zur 1.
Komplette Beispiele:
17 --> 17/2 = 8,5 --> 16 wählen --> 0001 0000 Rest 1 --> 17 entspricht 0001 0001
20 --> 20/2 = 10 --> 16 wählen --> 0001 0000 Rest 4 --> 4/2 = 2 --> 4 wählen --> 0001 0010 Rest 0 --> 20 entspricht 0001 0010
Wenn du nun das Hexadezimalformat möchtest, dann fasst du einfach jeweils 4 Bits (0en und 1en) von rechts zusammen. Also in 0001 0010 ist 0001 eine Hexadezimale und 0010 die nächste. Jetzt rechnest du von diesen Blöcken den Wert aus:
0010 = 0*8 + 0*4 + 1*2 + 0*1 = 2 --> Hexadezimale = 2
1111 = 1*8 + 1*4 + 1*2 + 1*1 = 15 --> Hexadezimale = F
Die 17 wäre also zum Beispiel 0x11
das hexadezimalsystem benötigt man in der computersprache um binärzahlen (also 0 und 1) umzuwandeln und somit nicht ewig lange zahlenketten zu haben... man benötigt viel weniger stellen für große zahlen!
berechnet tut man es, indem du die zahl durch die basis (im hexadezimalsystem 16) teilst und die reste aneinander hängst:
beispiel 17
17:16=1 Rest 1 (das ergebnis von vorher teilen wir jetzt so lange durch 16 bis =0 rauskommt)
1:16=0 Rest 1 (jetz haben wir null als ergebnis, heißt wir teilen nichtmehr weiter)
-> die reste hängen wir jetz von unten nach oben aneinander -> 17in dezimalzahlen ist 11 in hexadezimal!
anderes beispiel: 100
100:16=6 rest 4
6:16=0 rest 6
-> 100 im hexadezimalsystem ist 64
drittes beispiel nehmen wir eine große zahl, da ist es spannender:
123756
123756:16=7734 rest 12=C
7734:16 =483 rest 6
483:16= 30 rest 3
30:16= 1 rest 14=E
1:16= 0 rest 1
-> die hexadezimalzahl zu 123756 lautet 1E36C
das hier ist der mathematische weg, da kann man kaum fehler machen, das andere ist der logische weg, da muss man halt bissl denken :-D
die 17 ist die ...00000011
die 31 ist die ...0000001F
die 273 ist die ...00000111
wenn ich mich nicht verrechnet habe ;D
die vorletzte stelle ist die 16er-stelle. also 1x 16 + 1
0000 0111 = 1x 16² + 1 x 16 + 1x 16^0 (und 16^0 = 1)
jaa, ist sehr schwer vorstellbar :D wir zählen ja im dezimalsystem, binärsystem ist schon ziemlich schwer, trinär ist noch viel seltsamer und hexadezimal ist eigentlich völlig verwirrend :D
deswegen ist es ja auch eigentlich nur maschinencode .... eine "zwischenrechnung" wenn man so will :)
und auf nem 64-bit--hexadezimalsystem entsprechend:
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0111
Auch eine gute Erklärung, such dir die beste raus :)