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

时间:2014-08-12 05:20:39

标签: hex byte ascii

我们有一个问题就在这里,我们似乎无法摆脱。

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

让我们说:

0x12 0x34

我们现在想在设备的显示屏上输出ascii char,因此输出:

0x31 0x32 0x33 0x34

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

有谁知道怎么做?

提前致谢

编辑:

好的,所以我们知道: 0x85 = 1000 0101 得到8我们需要抓住左边4位。

1 个答案:

答案 0 :(得分:0)

在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]);
}

打印出“0x31 0x32 0x33 0x34