Thread Hexadezimale Codierung
(9 answers)
Opened by [E|B] at 2004-05-31 18:24
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 |