16,548
社区成员




//---------------------------------------------------------------------------
// 十六进制字符转字符,例如:"41"='A',字符不符合抛出异常,整型0
// 0x30是'0'-0x00,0x37是'A'-0x0A,0x57是'a'-0x0A
//---------------------------------------------------------------------------
char __fastcall HexCharToChar(char hChar, char lChar)
{
if ((hChar >= '0') && (hChar <='9'))
hChar -= 0x30;
else if ((hChar >= 'A') && (hChar <='F'))
hChar -= 0x37;
else if ((hChar >= 'a') && (hChar <='f'))
hChar -= 0x57;
else
throw 0;
if ((lChar >= '0') && (lChar <='9'))
lChar -= 0x30;
else if ((lChar >= 'A') && (lChar <='F'))
lChar -= 0x37;
else if ((lChar >= 'a') && (lChar <='f'))
lChar -= 0x57;
else
throw 0;
return (hChar << 4) + lChar;
}
// 使用
std::string j = "11";
b[0] = HexCharToChar(j[0], j[1]);
// #include <stdlib.h>
int HexToInt(int nHex)
{
char buffer[10];
_ltoa(nHex, buffer, 10);
return strtol(buffer, NULL, 16);
}