Freitag, 1. Juni 2012

Zahlensysteme (Dezimal, Hexadezimal und Binär)

Einleitung

Es gibt viele verschiedene Systeme um bestimmte Zahlen darzustellen. Das bekannteste ist wohl das Dezimalsystem, in dem jede beliebige Zahl mit Hilfe der Ziffern 0-9 dargestellt werden kann. In der Programmierung trifft man jedoch auch häufig auf andere Arten der Zahlendarstellung, wie dem Hexadezimalsystem oder dem wohl wichtigsten in der Computerwelt, dem Binärsystem


Dezimalsystem

Basiszahlen         : 10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Zahlendarstellung   : 1, 234, 5.6 ...
Berechnungsbeispiel : 234
                      2*102
                    +  3*101
                    +   4*100
                    = 200 + 30 + 4
                    = 234 

Hexadezimalsystem

Basiszahlen         : 16 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)
                      A = 10, B = 11, C = 12, D = 13, E = 14, F = 15
Zahlendarstellung   : 12, AB, D3F ...
Umrechnungsbeispiel : D3F
                      D*162
                    +  3*161
                    +   F*160
                    = 12*256 + 3*16 + 15*1
                    = 3072 + 48 +15
                    = 3135

Binärsystem

Basiszahlen         : 2 (0, 1)
Zahlendarstellung   : 10, 0101, 1001 ...
Umrechnungsbeispiel : 1010
                      1*23
                    +  0*22
                    +   1*21
                    +    0*20
                    = 1*8 + 0*4 + 1*2 + 0*1
                    = 8 + 0 + 2 + 0
                    = 10
Wie euch bestimmt aufgefallen ist gibt es eine bestimmte Regel, mit welcher man jede beliebige Zahl eines Zahlensystems in eine Dezimalzahl umrechnen kann. Diese möchte ich hier kurz voretsllen.

Dezimalzahl = [Ziffer] * [Basiszahl][Exponent]
Der Exponent bildet sich aus der Anzahl der Ziffern einer Zahl. Es gilt:
Exponent -> ...[4][3][2][1][0].[-1][-2][-3]...
(in den eckigen Klammern steht der Exponent der Ziffern vor und hinter dem Komma)

Das ist zwar sehr hilfreich, aber wie berechnet man eine Dezimalzahl in eine Binär oder Hexadezimalzahl um, und wie bestimmt man die Binärzahl einer Hexadezimalzahl und andersrum? Dies werde ich nun erklären.

Dezimal -> Hexadezimal

Beispiel:

Zahl = 1234
Basiszahlen (Hexadezimal) = 16

1234 / 16 = 77      Rest:   2
    77 / 16 =   4      Rest: 13
      4 / 16 =   0      Rest:   4

Nun muss man die Rest-Ziffern von unten nach oben lesen, aus zweistelligen Zahlen werden bekanntlich Buchstaben, also ist der

Hexadezimalwert = 4D2

Dezimal -> Binär

Beispiel:

Zahl = 1234
Basiszahlen (Binär) = 2

1234 / 2 = 617     Rest: 0
  617 / 2 = 308     Rest: 1
  308 / 2 = 154     Rest: 0
  154 / 2 =   77     Rest: 0
    77 / 2 =   38     Rest: 1
    38 / 2 =   19     Rest: 0
    19 / 2 =     9     Rest: 1
      9 / 2 =     4     Rest: 1
      4 / 2 =     2     Rest: 0
      2 / 2 =     1     Rest: 0
      1 / 2 =     0     Rest: 1

Auch hier müssen die Rest-Ziffern wieder von unten nach oben gelesen werden. Die Dezimalzahl 1234 ergibt im Binärsystem also

Binärwert = 10011010010

Hexadezimal -> Binär


0 = 0000    6 = 0110    C = 1100
1 = 0001    7 = 0111    D = 1101
2 = 0010    8 = 1000    E = 1110
3 = 0011    9 = 1001    F = 1111
4 = 0100    A = 1010
5 = 0101    B = 1011

Beispiel:

Zahl = B7

B = 1011
7 =  0111
Binärwert = 10110111

Binär -> Hexadezimal

Zahl = 1010 0101 1101
1010 = A
0101 = 5
1101 = D

Hexadezimalwert = A5D

Keine Kommentare:

Kommentar veröffentlichen