【问题标题】:A way to convert hex value to decimal equivailent一种将十六进制值转换为十进制等效值的方法
【发布时间】:2014-10-05 01:44:05
【问题描述】:

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

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

让我们说它:

0x12 0x34

我们现在想在设备的显示屏上将其输出为 ascii char,因此它应该输出:

0x31 0x32 0x33 0x34

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

有人知道怎么做吗?

提前致谢

编辑:

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

【问题讨论】:

    标签: hex byte ascii


    【解决方案1】:

    在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-05
      • 2011-08-04
      • 2010-10-23
      • 1970-01-01
      • 2018-01-22
      • 1970-01-01
      • 2012-01-02
      相关资源
      最近更新 更多