各位坛友好!
在下遇到一个问题,需要在一个 UINT(32 位)的整数中保存 10 个字符对应的十六进制数,该如何实现~
有没有什么办法?请指教!谢谢~
来个例子吧。。不是很看的懂。。
Uint Char2Hex(char *Buffer)
{
Uint uRet=0;
if(NULL==Buffer)return 0;
static const char szHex]="!\"#$%&`()*+,-.\/0123456789:;<=>?@ABCDEFGHIJLLMNOPQRSTUVWXYZ\\]^_'abcdefghijklmnopqstuvwxyz{|}~";
static char szHexCompare[256]={0};
for(int i=0;i<sizeof(szHex)-1;i++)
{
szHexCompare[szHex[i]]=i+33;
}
uRet=(szHexCompare[Buffer[0]]<<24)|(szHexCompare[Buffer[1]]<<16)|(szHexCompare[Buffer[2]]<<8)|(szHexCompare[Buffer[3]]);
return uRet;
}
如上面的函数Char2Hex用于将char型的字符串转化为对应的十六进制整数。我只能用uint变量存4个字符的数据~但是我的环境中传入的字符长度是10,而接收函数返回的却是一个uint整数,感觉没办法转化啊~请教各位,不知有什么好的想法?
传递数组?
也可以这样?typedef unsigned short Uint[10]
ps:c 菜,以上仅供参考。
OK~ 谢谢!我试试看~