Wie kann Binär-, Dezimal- und Hexadezimalzahlen umrechnen?

4 Antworten

Hallo,

die Systeme sind alle Stellenwertsysteme, d.h. der Wertz einer Ziffer hängt davon ab, an welcher Stelle einer Zahl sie steht.

Unser Dezimalsystem hat die Zehn als Grundlage. Bei einer Zahl wie 
245668 steht an der letzten Stelle, wie oft die 10^0 multipliziert wird, nämlich  achtmal. Da 10^0 gleich 1 ist, hat diese Ziffer einen Wert von 8*1=8

Die 6 links daneben bedeutet 6*10^1, also 6*10=60

Die 6 daneben bedeutet 6*10^2, also 6*100=600,

dann kommt 5*10^3=5000, dann 4*10^4=40000 und 2*10^5=200000.

Zusammen ergibt das 245668, nämlich 200000+40000+5000+600+60+8.

Beim Binärsystem und beim Hexadezimalsystem funktioniert das genauso, nur daß die einzelnen Stellen hier Multiplikationen mit Zweier- bzw. Sechzehnerpotenzen bedeuten und daß nur 2, bzw. sogar 16 Ziffern zur Verfügung stehen.

Das Binärsystem kennt nur die Ziffern 0 und 1. Je nachdem, an welcher Stelle sie stehen, bedeuten sie eine Multiplikation mit 1, 2, 4, 8, 16 usw., also mit den Zweierpotenzen. Die 1011101 bedeutet 
1*2^6+0*2^5+1*2^4+1*2^3+1*2^2+0*2^1+1*2^0, also
64+0+16+8+4+0+1=93.

Beim Hexadezimalsystem bedeuten die Stellen Potenzen von 16 und zu den bekannten Ziffern von 0 bis 9 kommen noch die Buchstaben A bis F dazu für 10, 11, 12, 13, 14 und 15.

C2A bedeutet demnach 12*16^2+2*16+10*1=3072+32+10=3114.

So kannst Du die Zahlen auch umrechnen:
was ist die 1000 (Dezimalsystem) im Hexadezimalsystem?

Dazu teilst Du die 1000 zunächst durch die höchste 16er-Potenz, die kleiner oder gleich wie 1000 ist, also durch 16²=256. Hier interessiert beim Ergebnis nur die Zahl vor dem Komma, das wäre eine 3. Sie ist Deine erste Ziffer.

3*256=768. Bleiben von der 1000 noch 232 übrig. Die mußt Du durch die 16 teilen, denn 16² wäre schon zu groß:

Das ist 14,5, also 14, was im Hexadezimalsystem ein E wäre. Deine zweite Ziffer ist also ein E.

14*16=224. 232-224=8.

Hier kannst Du nur noch durch die 16^0, also durch die 1 teilen, was glatt 8 ergibt. Die 1000 im Hexadezimalsystem schreibt sich also 3E8.

Tatsächlich ergeben 3*256+E, also 14*16+8*1=768+224+8=1000.

So funktioniert das Ganze. 

Herzliche Grüße,

Willy

mit folgendem Programm (kannst Du auch im Kopf ausführen):

function print(number, radix) {
    if (number < radix) {
        printDigit(number);
    } else {
        print( trunc(number / radix), radix);
        printDigit( number % radix);
    }
}

oder lade Dir eine interpretierende Programmiersprache runter, in der Du dieses Programm laufen lassen kannst, oder es schon als print-funktion drin ist.
(Scheme, Python, Ruby, Smalltalk, Haskell, ML, etc.)