Hi Jürgen...habs mal neu strukturiert ist wohl beim Einfügen verlorengegangen
Hier gibt es zu der Umwandlung ein Beispiel:Code:size_t UChar2Hex7String( const unsigned char *source, size_t sourceLen, char *dest) { dest[0] = '\0'; char *p = dest; for (size_t i = 0; i < sourceLen; i += 8 ) { unsigned char tmpbuffer[10]; memset(tmpbuffer, 0, sizeof tmpbuffer); unsigned char mask = 0; for (size_t j = 0; j < 8 && i + j < sourceLen; j++) { unsigned char ch = source[i + j]; ch >>= j; tmpbuffer[j] = ch; if (j > 0) { ch = source[i + j]; ch &= mask; ch <<= 8 - j; tmpbuffer[j - 1] |= ch; } mask = (mask << 1) | 1; } for (j = 0; j < 7 && i + j < sourceLen; j++) { sprintf(p,"%02x", tmpbuffer[j]); p += 2; } } return(p - dest); }
http://www.dreamfabric.com/sms/hello.html
habe mich gerade man ein bisschen in das Thema eingearbeitet...
Message: Testtext
Man beachte, dass sich die verwendeten Asciizeichen alle in einem Raum befinden, der eine führende Null hat. Diese lässt man genauso wie in der Dezimalrechnung einfach weg.Code:Ascii Hex Bin T 54 01010100 e 65 01100101 s 73 01110011 t 74 01110100 t 74 01110100 usw..
Jetzt spiegeln wir die einzelnen Bytes.Code:Ascii Hex Bin T 54 1010100 e 65 1100101 s 73 1110011 t 74 1110100 t 74 1110100 usw..
hängen es hintereinander und gruppieren byteweise neu.Code:Ascii Hex GespiegeltBin T 54 0010101 e 65 1010011 s 73 1100111 t 74 0010111 t 74 0010111 usw..
Die neu gruppierten Bytes werden nun wieder gespiegelt und stehen uns in alt bekannter Schreibweise zur verfügung.Code:00101011.01001111.00111001.01110010.111...
Als Beispieltext habe ich mal den von Nobbi hergenommen. (http://www.nobbi.com/sms_pdu.htm)Code:GespiegeltBin Hex 11010100 D4 11110010 F2 10011100 9C 01001110 4E
Gruss
Michael
Jetzt hats doch glatt bei mir die Formatierung auch verrissen?!







Zitieren

Lesezeichen