This question already has answers here:
Convert two ASCII Hexadecimal Characters (Two ASCII bytes) in one byte
(5个答案)
3年前关闭。
我有一个典型的用例,我需要将无符号char值转换为十六进制。
例如,
pBuffer的长度为32个字节,其值如下:
步骤1:我需要按以下方式拆分此pBuffer值:
步骤2:我需要将上述拆分后的值转换为十进制,如下所示:
关于如何实现STEP1和STEP2的任何想法?任何帮助,将不胜感激
(5个答案)
3年前关闭。
我有一个典型的用例,我需要将无符号char值转换为十六进制。
例如,
unsigned char *pBuffer = (unsigned char *)pvaluefromClient //where pvaluefromclient is received from a client
pBuffer的长度为32个字节,其值如下:
(gdb) p pBuffer
$5 = (unsigned char *) 0x7fd4b82cead0 "EBA5F7304554DCC3702E06182AB1D487"
(gdb) n
步骤1:我需要按以下方式拆分此pBuffer值:
{EB,A5,F7,30,45,54,DC,C3,70,2E,06,18,2A,B1,D4,87 }
步骤2:我需要将上述拆分后的值转换为十进制,如下所示:
const unsigned char pConvertedBuffer[16] = {
235,165,247,48,69,84,220,195,112,46,6,24,42,177,212,135
};
关于如何实现STEP1和STEP2的任何想法?任何帮助,将不胜感激
最佳答案
这样的事情怎么样:
unsigned char *pBuffer = (unsigned char *)pvaluefromClient //where valuefromclient is received from a client
int i, j;
unsigned char target[16]
for(i=0;i<32;i+=2)
{
sscanf((char*)&pBuffer[i], "%02X", &j);
target[i/2] = j;
}
09-29 21:54