Hexadezimal-und Binärcode

Von: , Frage gestellt am Di, 16. Jan 2001

Kann mir jemand sagen, wie ich Buchstaben und Zahlen in Hexadezimal- und Binärcode umwandeln kann?
Gruss Daniel

2 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde hilfreich
    Re: Hexadezimal-und Binärcode

    Kann mir jemand sagen, wie ich Buchstaben und Zahlen in
    Hexadezimal- und Binärcode umwandeln kann?
    Gruss Daniel
    Ganz einfach: Jedes ASCII-Zeichen hat eine ihr eindeutig zugewiesene Positionsnummer. Das erste sichtbare Zeichen
    ist an Pos. 32 und ist das Leerzeichen (Space). Das große
    A hat die 65. Das kann man in einer ASCII-Tabelle nachsehen.
    Jetzt nimmst du diese Dezimalzahl und wandelst sie in
    Hexadezimal um. Du weisst doch wie das geht?
    Genauso macht man das auch mit binär. Solche typischen
    Informatiksachen findet man bestimmt überall im Internet.

    Einen Algorithmus kann habe ich gerade nicht zur Hand und auch keine Zeit, sowas auf die schnelle hinzuschreiben.
    Nur soviel noch:

    Dez. / 16 -> ganze Zahl in Buchstaben A bis F umwandeln
    Dez mod 16 -> dito


    Dez. & 1 = 1 -> 1
    Dez. & 1 = 0 -> 0
    Das ganze als String


    Franz

  2. Antwort von nach 4 Tagen hilfreich
    Re: Hexadezimal-und Binärcode

    Hi. Kann mir jemand sagen, wie ich Buchstaben und Zahlen in
    Hexadezimal- und Binärcode umwandeln kann?
    Buchstaben werden durch Zahlen repräsentiert. Unter DOS war das noch ein Byte pro Buchstabe. Desswegen auch die Beschränkung von Zeichensätzen auf 256 verschiedene Symbole.

    Heutzutage kommen immer mehr UniCode-Zeichensätze auf, die auch mehrere Zeichen unterstützen.

    Unter Basic ging die Umwandlung von Zeichen zu Zahlen (und umgekehrt) so:

    Zahl = asc('A')
    Buchstabe = chr(64)

    Die Befehle lauten in den verschiedensten Programmiersprachen aber ziemlich ähnlich. Du dürftest kein Problem haben, wenn du in der jeweiligen Hilfe nach ASCII suchst.

    Was die Umrechnung einer Zahl vom Dezimalsystem ins Binäre oder Hexadezimale angeht, zuerst eine kleine Tabelle, die die ersten 16 Zahlen in den verschiedenen Systemen vergleicht:

    (00)10 = (00000)2 = (00)16
    (01)10 = (00001)2 = (01)16
    (02)10 = (00010)2 = (02)16
    (03)10 = (00011)2 = (03)16
    (04)10 = (00100)2 = (04)16
    (05)10 = (00101)2 = (05)16
    (06)10 = (00110)2 = (06)16
    (07)10 = (00111)2 = (07)16
    (08)10 = (01000)2 = (08)16
    (09)10 = (01001)2 = (09)16
    (10)10 = (01010)2 = (0A)16
    (11)10 = (01011)2 = (0B)16
    (12)10 = (01100)2 = (0C)16
    (13)10 = (01101)2 = (0D)16
    (14)10 = (01110)2 = (0E)16
    (15)10 = (01111)2 = (0F)16
    (16)10 = (10000)2 = (10)16
    


    => Das Dezimalsystem besteht aus (0,1,2,3,4,5,6,7,8,9,0)
    => Das Binärsystem besteht aus (0,1)
    => Das Hexadezimalsystem besteht aus (0,..,9,A,B,C,D,E,F)

    Es gibt einen normalen und einen einfachen Algorithmus, mit denen man an die Zahlenwerte der anderen Basen gelangt. Ich werde mal nur den einfachen Weg zeigen:

    Ich habe eine Zahl im Dezimalsystem z.B. (123)10

    Jetzt nehme ich mir alle Potenzen von 2 und 16 <= 123:

    20 = 1
    21 = 2
    22 = 4
    23 = 8
    24 = 16
    25 = 32
    26 = 64
    27 = 128 ... diese Zahl brauchen wir nicht mehr
    


    160 = 1
    161 = 16
    162 = 256 ... diese Zahl ist auch größer 123
    


    Jetzt kommt die eigentliche Umrechnung, die eigentlich nur Multiplikation bzw. Division und Addition bzw. Subtraktion enthält:

    123 = 1 * 64 + 59
    59 = 1 * 32 + 27
    27 = 1 * 16 + 11
    11 = 1 *  8 +  3
    3 = 0 *  4 +  3
    3 = 1 *  2 +  1
    1 = 1 *  1 +  0 
    


    Die binäre repräsentation wäre also:

    (123)10 = (1111011)2 
    


    Analog die Umrechnung in Hexadezimal:

    123 =  7 * 16 + 11
    11 = 11 *  1 + 0
    


    Da im Hexadezimalen das Symbol B für die Zahl 11 steht, schaut das Ergebnis so aus:

    (123)10 = (7B)16
    


    Anhand der Berechnung oben lässt sich ganz einfach ein Algorithmus herleiten.

    mfG,

    J.P.Jarolim

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!