IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 十六进制格式打印char* -> 正文阅读

[C++知识库]十六进制格式打印char*

文章目录

C++ Builder

??今天调试GUI程序,需要将网络接收的数据流(char*)以十六进制的格式打印到日志窗口上。

String PrintHex(char *data, int len)
{
		char alphabet[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
		String s;
		for (int i=0; i<len; i++) {
				int l = (int)(data[i]&0x0f);
				int h = (int)(data[i]>>4)&0x0f;
				s += alphabet[h];
				s += alphabet[l];
				s += " ";
		}
		return s;
}

在后来的调试过程中发现当传输的数据比较复杂的时候,这样直接的打印字节序列很难定位到某个具体元素在序列中的位置,为此在前面程序的基础上添加了显示地址的功能。

String PrintHex(char *data, int len)
{
	char alphabet[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
	String s;
	int l,h;
	for (int i=0; i<len; i++) {
		if (i % 8 == 0) {
			s += "\r\n";
			char start = (i/8)*8;
			l = (int)(start&0x0f);
			h = (int)(start>>4)&0x0f;
			s += alphabet[h];
			s += alphabet[l];

			s += "~";

			char end = (i/8+1)*8-1;
			l = (int)(end&0x0f);
			h = (int)(end>>4)&0x0f;
			s += alphabet[h];
			s += alphabet[l];

			s += ": ";
		}
		l = (int)(data[i]&0x0f);
		h = (int)(data[i]>>4)&0x0f;
		s += alphabet[h];
		s += alphabet[l];
		s += " ";
	}
	return s;
}

以下是调试过程中一个输出案例。

00~07: 11 42 00 01 a3 65 00 00 
08~0f: 00 00 00 40 59 40 00 00 
10~17: 00 00 00 c0 59 40 00 00 
18~1f: 00 00 00 80 59 40 00 00 
20~27: 00 00 00 40 5a 40 6a 00 
28~2f: 00 00 00 00 00 c0 5a 40 
30~37: 00 00 00 00 00 00 26 40 
38~3f: 22 00 00 00 0d 0e 07 fb 
40~47: 0d 0a 
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 15:59:31  更:2022-04-06 16:03:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:47:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码