我们有一个问题就在这里,我们似乎无法摆脱。
我们有一个十六进制字节数组
让我们说:
0x12 0x34
我们现在想在设备的显示屏上输出ascii char,因此输出:
0x31 0x32 0x33 0x34
所以我们想要在字节数组的值和字节中数字的ascii等效值之间进行转换。
有谁知道怎么做?
提前致谢
编辑:
好的,所以我们知道: 0x85 = 1000 0101 得到8我们需要抓住左边4位。
答案 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
”