Hex 将十六进制值转换为十进制等效值的一种方法

Hex 将十六进制值转换为十进制等效值的一种方法,hex,byte,ascii,Hex,Byte,Ascii,我们这里有个问题,我们似乎无法摆脱 我们有一个十六进制字节数组 比如说: 0x12 0x34 现在,我们希望将其作为ascii字符输出到设备的显示器上,因此它应该输出: 0x31 0x32 0x33 0x34 所以我们想在字节数组的值和字节中数字的ascii等效值之间进行转换 有人知道怎么做吗 提前谢谢 编辑: 好的,我们知道: 0x85=1000 0101 要得到8,我们需要获取左边的4位。在C中,可以使用printf unsigned char array[2] = {0x12, 0x34}

我们这里有个问题,我们似乎无法摆脱

我们有一个十六进制字节数组

比如说:

0x12 0x34

现在,我们希望将其作为ascii字符输出到设备的显示器上,因此它应该输出:

0x31 0x32 0x33 0x34

所以我们想在字节数组的值和字节中数字的ascii等效值之间进行转换

有人知道怎么做吗

提前谢谢

编辑:

好的,我们知道: 0x85=1000 0101
要得到8,我们需要获取左边的4位。

在C中,可以使用printf

unsigned char array[2] = {0x12, 0x34};
printf("%x%x", array[0], array[1]);
打印出“
1234

编辑:

如果需要打印出
“0x31 0x32 0x33 0x34”
请使用此选项

char ascii[] = {"0123456789ABCDEF"};
unsigned char array[] = {0x12, 0x34};
int length = sizeof(array)/sizeof(array[0]);
int i;
for (i = 0; i < length; ++i) {
    printf("0x%02X 0x%02X ", ascii[(array[i] >> 4) & 0xf], ascii[array[i] & 0xf]);
}
charascii[]={“0123456789ABCDEF”};
无符号字符数组[]={0x12,0x34};
int length=sizeof(数组)/sizeof(数组[0]);
int i;
对于(i=0;i>4)和0xf],ascii[array[i]&0xf]);
}
打印出“
0x31 0x32 0x33 0x34