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
Kann mir jemand sagen, wie ich Buchstaben und Zahlen in Hexadezimal- und Binärcode umwandeln kann?
Gruss Daniel
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
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
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
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
(123)10 = (1111011)2
123 = 7 * 16 + 11 11 = 11 * 1 + 0
(123)10 = (7B)16