十六进制调试显示数据

10 篇文章 0 订阅

在嵌入式开发中,不管是驱动调试还是应用协议开发,经常需要十六进制打印数据,供调试使用。以下是C实现的一个十六进制输出的函数,感觉挺实用的,供参考

#define BIN2CHAR(ch) (((ch) > ' ' && (ch) <= '~') ? (ch) : '.')

void dumphex(unsigned char *buf, int len)
{
    char membuf[1024] = {0};
    unsigned char *ptr = (unsigned char *) buf;
    char *ibuf = membuf;
    int i, j;
    int len1, len2;
    len1 = len / 16 * 16;
    len2 = len % 16;
    ibuf[0] = 0;

    for (i = 0; i < len1; i += 16)
    {
        ibuf = membuf;
        sprintf(ibuf, "0x%08X  ", (int) buf + i);
        ibuf += 12;

        for (j = 0; j < 16; j++)
        {
            sprintf(ibuf, "%02X ", ptr[j]);
            ibuf += 3;
        }

        sprintf(ibuf, "  ");
        ibuf += 2;

        for (j = 0; j < 16; j++)
        {
            sprintf(ibuf, "%c", BIN2CHAR(ptr[j]));
            ibuf++;
        }

        sprintf(ibuf, "\r\n");
        printf("%s", membuf);
        ptr += 16;
    }

    if (len2 == 0)
    {
        return;
    }

    ibuf = membuf;
    sprintf(ibuf, "0x%08X  ", (int) buf + ((len >> 4) << 4));
    ibuf += 12;

    for (i = 0; i < len2; i++)
    {
        sprintf(ibuf, "%02X ", ptr[i]);
        ibuf += 3;
    }

    for (i = len2; i < 16; i++)
    {
        sprintf(ibuf, "   ");
        ibuf += 3;
    }

    sprintf(ibuf, "  ");
    ibuf += 2;

    for (i = 0; i < len2; i++)
    {
        sprintf(ibuf, "%c", BIN2CHAR(ptr[i]));
        ibuf += 1;
    }

    sprintf(ibuf, "\r\n");

    printf("%s", membuf);
}

显示效果如下;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt十六进制编辑界面是一个可以在其中编辑16进制数据的软件界面。这个软件界面包括了16进制数据显示和编辑功能以及其他一些常见的编辑器功能,比如寻找和替换等。在这个软件界面中,用户可以通过点击不同的操作按钮或者使用快捷键来执行各种操作。用户可以在编辑器中输入任意16进制数值,并在其上执行各种操作,比如插入、删除、移动等。用户还可以将他们所编辑的数据导出到文件中,或者从文件中打开以编辑数据。在编辑器中,用户可以选择不同的字体来显示数据,或者改变颜色和样式来进行编辑。总之,简单来说,Qt十六进制编辑界面是一个强大的、易用的、高效的数据编辑器界面,可以提高用户的工作效率和数据处理能力。 ### 回答2: QT 是一个跨平台的 GUI 应用开发工具包,对于程序员和开发人员非常友好和方便,qt 十六进制编辑界面可以非常方便的编辑和展示十六进制数据。在这个编辑界面中,用户可以通过选择要编辑的文件或者直接粘贴十六进制数据到程序中,然后以不同的格式(比如二进制,十进制和十六进制等)来显示和编辑这些数据。在界面中,用户可以非常方便地选择和修改十六进制数据。界面中还提供了丰富的选项,如置换、替换、查找和排序等,使得用户可以非常方便地对数据进行处理和修改。 QT 十六进制编辑界面的主要优点是其灵活性和可扩展性。用户可以通过简单的代码实现其它自定义操作,以满足不同的编辑需求。此外,QT 十六进制编辑界面还提供了多语言支持,以便在不同的国家和地区使用。 总之,QT 十六进制编辑界面是一种非常方便和实用的编辑工具,适用于需要涉及十六进制数据编辑的程序员和开发人员。通过这个界面,用户可以非常方便地处理和编辑相应的数据,从而提高工作效率和开发效率。 ### 回答3: Qt 十六进制编辑界面是一种用于查看和编辑十六进制码的工具,可以帮助开发人员与编码相关的工作。它是一个可视化工具,用户可以通过界面上的组件轻松地查看和编辑十六进制码。 界面通常分为两个部分,上方是十六进制码的显示区域,下方是对应的 ASCII 字符串显示区域。用户可以在十六进制区域中选择需要编辑的数据,或者在 ASCII 区域中显示已编辑的数据。同时,还可以通过复制和粘贴等标准操作来操作数据。此外,界面通常提供了一些常规操作,如打开、保存和清除数据等。 Qt 十六进制编辑界面是一种功能强大且易于使用的工具,适用于任何需要处理大小写不敏感的二进制数据的场景。例如,在加密和解密应用程序中,用户经常需要查看和编辑二进制数据。另外,在调试和测试过程中,询问底层数据可能是十分有用的。Qt 十六进制编辑界面可以为这些开发人员提供便利和支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值