十六进制转为字符的问题
我想把从控制读到的十六进制数转为这个十六进制对应的字符,应该怎么转啊~比如说我从控件读到的是f7,那如何转成f7对应的字符。请各位高手指教~谢谢!!
[解决办法]
char c = 0xf7;
// ANSI C:
int i = 0;
char str[] = "0xF7";
i = (int)strtol(str, NULL, 0);
// Windows API:
#include <shlwapi.h>
#pragma comment(lib, "shlwapi.lib");
int i = 0;
TCHAR str[] = TEXT("0xF7");
// MFC 中在 StrToIntEx 前加 ::
if (StrToIntEx(str, STIF_SUPPORT_HEX, &i))
{
// 转换成功
}
//return byte changed
int hexstr2mem(char *hexstr,unsigned char *mem,int meml)
{
//four bit ,mem to ascii table
static const char hex[]="0123456789ABCDEF";
static const char hex2[]=/*0123456789*/"abcdef";
static char hexr[256]={1,0};//rtable
int i;
int index;
int bytes=0;
int hexstrl=strlen(hexstr);
if (1==hexr[0])
{
hexr[0]=0;
for (i=0;i<sizeof(hex)-1;++i)
hexr[hex[i]]=i;
for (i=0;i<sizeof(hex2)-1;++i)
hexr[hex2[i]]=10+i;
}
for (index=0;index<hexstrl && bytes<meml;index+=2,++bytes)
mem[bytes]= hexr[hexstr[index]]<<4
[解决办法]
hexr[hexstr[index+1]];
return bytes+1;
}