C语言中字符串的形式打印16进制数据。 这样写,输出更直观些

#define PRINT_BUF_MAX            (32)
#define TAG_STRING_MAX          (32)
static void print_step_hex_data(const char *tag, void *pbuf, size_t len)
{int i;char buf[PRINT_BUF_MAX * 4] = {0};char temp_buf[4] = {0};sprintf(buf,"%s",tag);for (i=0;i<len;i++) {if(i % 16 ==0)strcat(buf,"\n");sprintf(temp_buf," %02x",*((char *)pbuf + i)&0xff);strcat(buf, temp_buf);}strcat(buf,"\n");LOGI("%s", buf);
}void print_hex_data(const char *tag, void *pbuf, size_t len)
{int i;uint32_t block;uint32_t remainder;void *p;char tag_buf[TAG_STRING_MAX + 6] = {0};char tail_buf[6+1] = {0};p = pbuf;if (len<=PRINT_BUF_MAX)return print_step_hex_data(tag, p, len);else {block = len / PRINT_BUF_MAX;remainder = len % PRINT_BUF_MAX;for (i=0;i<block;i++) {memcpy(tag_buf,tag,TAG_STRING_MAX);sprintf(tail_buf,"[%i]",i);strcat(tag_buf, tail_buf);print_step_hex_data(tag_buf, p, PRINT_BUF_MAX);p = (char *)p + PRINT_BUF_MAX;}if (remainder) {memcpy(tag_buf,tag,TAG_STRING_MAX);sprintf(tail_buf,"[%i]",i);strcat(tag_buf, tail_buf);print_step_hex_data(tag_buf, p, remainder);}}
}

[工具]-C语言中字符串的形式打印16进制数据相关推荐

  1. C#:十六进制字节数组 转换成 字符串、字符串形式的16进制数据 转换成 十六进制字节数组

    十六进制字节数组 转换成 字符串 /// <summary>/// 十六进制字节数组 转换成 字符串/// </summary>/// <returns></ ...

  2. c语言16进制数给变量,C语言中怎样定义能够保存16进制整数的变量

    Objective-C中NSInvocation的使用 OC中调用方法某个对象的消息呦两种方式: #1. performanceSelector: withObject: #2. NSInvocati ...

  3. c语言ffffff错误,C语言打印16进制出现0xffffff现象的问题剖析!

    C语言打印16进制出现0xffffff现象的问题剖析! 其实类似的问题不是只在网络程序中才会出现的,看示例代码: 复制代码 1 #include 2 int main() 3 { 4     char ...

  4. C语言快速互转HEX(16进制)和原始字符串/数组

    C语言快速互转HEX(16进制)和原始字符串/数组 缘由 这个起因是昨晚群里有人在讨论怎么把字符串转成HEX方法最佳,讨论到最后变成哪种方法效率最优了.毕竟这代码是要在MCU上面跑的,要同时考虑到时间 ...

  5. java socket发送16进制_JavaSocket短连接实现分别接收字符串和16进制数据

    做个笔记,在接收16进制数据的时候乱码了.原因是Socket在接收数据的时候需要根据不同的数据定义不同的接收方式,也就是约定好传输协议(具体体现在后面服务端接收16进制那里). 字符串的发送接收 字符 ...

  6. 把ASCII码的字符串转为数字的16进制

    /* 函数名称:AsciiStrToHexArray 功能:把ASCII码的字符串转为数字的16进制 参数dst:存储16进制数组数据指针 参数src:存储ASCII码的字符串指针 返回值:16进制的 ...

  7. 字符串Ascll格式转16进制

    之前做过一些项目需要用到ASCLL码转换到16进制,在网上搜索后发现,大部分都是10进制数字转16进制数据,这对于8位字符类型unsignal char   (这里不用char,因为char是-127 ...

  8. C语言(JS)浮点、16进制相互转换

    文章目录 前言 一.float转16进制(可用于C语言) 二.16进制转float(可用于C语言) 三.16进制转float(可用于JS.C语言方法3) 总结 前言 处理Modbus协议float转1 ...

  9. 带字符串空格的转16进制

    16进制字符串转换成16进制数据 string[] hexValuesSplit = AllChar.TrimStart().TrimEnd().Split(' ');byte[] Bytes = n ...

最新文章

  1. 动画演示10个有趣但毫无用处的Linux命令
  2. umi搭建react+antd项目(六)父子组件通讯
  3. python自学网站 知乎-知乎千赞回答 | 为什么自学python看不进去?
  4. 在想要放弃的时候想想是什么在支撑着你走到了这一步。
  5. Linux软件安装方法小结
  6. python兼职程序员工资-没想到,学会Python即使不做程序员都能月入过万!
  7. jQuery上传插件uploadify中文文档
  8. 电动机正反转继电器控制系统
  9. php 多元数组,php数组_php多元数组
  10. 深入理解操作系统——datalab-handout
  11. 2021-10-27 turtle 绘画创意图形(梅花)
  12. 概率论中常见分布的数学期望、方差及特征函数推导 (一)离散型随机变量
  13. 折腾修改SQLCipher静态库的符号表
  14. @PageableDefault
  15. Oracle命令结束,更新语句oracle - ORA-00933:SQL命令未正确结束
  16. 哪个工具可以保护计算机免受ESD的影响,可以避免ESD影响的实用解决方案
  17. C# 抽象类与接口异同
  18. 漫谈游戏中的人工智能
  19. android微信风格,微信主题太过简单?教你一键设置,多种风格自由切换
  20. mysql over rank_mysql实现Oracle 的rank() over()函数

热门文章

  1. 上海市经济信息化委关于支持新建互联网数据中心项目用能指标的通知
  2. 如何看懂发电机功率圆图
  3. 直流UPS与传统UPS系统节能分析
  4. Algorithm之PrA:PrA之nLP非线性规划算法+Matlab 优化工具箱的GUI求解非线性规划
  5. 在Python中使用XGBoost
  6. 微信小程序图片轮转播放
  7. php 数组元素快速去重
  8. IOS-C语言第11天,Dynamic Memory(动态
  9. (原创)c++中的类型擦除
  10. 多系统权限设计(一)