Thread Hexadezimale Codierung (9 answers)
Opened by [E|B] at 2004-05-31 18:24

esskar
 2004-06-01 23:05
#25727 #25727
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hi...

also, dann machen wir mal ein bsp.

StringToHexString("Hallo")

zu Beginn ist i = 0:
=> str.charCodeAt(i) := 72
=> 72 & 0xF0 := 64, also 1001000 & 11110000 = 1000000 (hibit)
=> 64 >> 4 := 4, also 1000000 >> 4 = 100

also, da b in diesem Fall <= 9 ist, wird der character mit dem Wert b + 48 an das Ergebnis angehängt: 4+48 = 62 = '4' wobei die werte 48 bis 57 die Zahlen 0 bis 9 darstellen

=> str.charCodeAt(i) := 72
=> 72 & 0x0f := 8, also 1001000 & 00001111 = 1000 (lowbits)

nun wird also '8' angehängt und schon haben wir 'H' als '48' codiert

und so weiter und so fort

fals b mal größer 9 wird, wird der ascii wert zwischen 65 und 70 genohmen; wobei A-Z zwischen 65 und 90 liegt; (wenn man an dieser stelle kleine Buchstaben haben möchte, muss man nur 65 durch 97 ersetzen

an sich muss man jetzt nur gewährleisten, dass b nie größer als 15 wird; kann man das?
ja, natürlich; durch das rechts shiften (>>) und das Unden (&) bekommt man es immer nur mit vier-bit zahlen zu tun

vier bit zahlen sind definiert zwischen 0000 und 1111; also
maximal 0x0 bis 0xF also immer < 15

View full thread Hexadezimale Codierung