CString als Hex Wert in CString speichern ?
-
Hallo,
ich suche eine Möglichkeit, einen Text der in einem CString enthalten ist, als einen Hex Wert in einen anderen CString zu speichern !
Gibt es hierfür eine Möglichkeit ?
Danke Coolsero
-
so wie aufgeführt wäre es eine möglichkeit. wenn der String aus mehreren zeichen besteht must du das halt in eine schleife packen
int iHex=0; char szChar[2]="A"; char szHex[3]; iHex += szChar[0];//Zeichen A in Int wandeln A ist 65 sprintf(szHex,"%.02x",iHex);//Int in Hex wandeln 65 ist nun 41 MessageBox(szHex);
-
Man kann auch ohne sprintf auskommen. Das ist natürlich dann auch etwas flinker.
static inline char ByteToHexA(int c) { return static_cast<char>((c<10) ? (c)+'0' : (c)-10+'A'); } void BinToString(PCVOID pData, PSTR pszOut, int iLen) { // Durchlaufe den gesamten Bereich int iPos=0; const BYTE *pszStr = (const BYTE *)pData; while (iLen--) { // Lade das nächste Byte BYTE byte = *pszStr++; BYTE uByte = (byte & 0xF0) >> 4, lByte = byte & 0xF; pszOut[iPos++] = ByteToHexA(uByte); pszOut[iPos++] = ByteToHexA(lByte); } pszOut[iPos] = '\0'; }
-
<Korinthen kack>
Oder noch flinker (ca. 25% in der Debug Version):static inline char ByteToHexA2(int c) { return "0123456789ABCDEF"[c]; }</Korinthen kack>
-
Jupp! Gute Idee!