16进制打印字符串数据
来源:互联网 发布:视频画质修复软件 编辑:程序博客网 时间:2024/06/07 14:42
/*
* Debugging function to print a hexdump of data with ascii, for example:
* 00000000 74 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6d this is a test m
* 00000010 65 73 73 61 67 65 2e 20 62 6c 61 68 2e 00 essage. blah..
*/
void print_hexdump(char *data, int len)
{
int line;
int max_lines = (len / 16) + (len % 16 == 0 ? 0 : 1);
int i;
for(line = 0; line < max_lines; line++)
{
printf("x ", line * 16);
/* print hex */
for(i = line * 16; i < (8 + (line * 16)); i++)
{
if(i < len)
printf("x ", (uint8_t)data[i]);
else
printf(" ");
}
printf(" ");
for(i = (line * 16) + 8; i < (16 + (line * 16)); i++)
{
if(i < len)
printf("x ", (uint8_t)data[i]);
else
printf(" ");
}
printf(" ");
/* print ascii */
for(i = line * 16; i < (8 + (line * 16)); i++)
{
if(i < len)
{
if(32 <= data[i] && data[i] <= 126)
printf("%c", data[i]);
else
printf(".");
}
else
printf(" ");
}
printf(" ");
for(i = (line * 16) + 8; i < (16 + (line * 16)); i++)
{
if(i < len)
{
if(32 <= data[i] && data[i] <= 126)
printf("%c", data[i]);
else
printf(".");
}
else
printf(" ");
}
printf("\n");
}
}
* Debugging function to print a hexdump of data with ascii, for example:
* 00000000 74 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6d this is a test m
* 00000010 65 73 73 61 67 65 2e 20 62 6c 61 68 2e 00 essage. blah..
*/
void print_hexdump(char *data, int len)
{
int line;
int max_lines = (len / 16) + (len % 16 == 0 ? 0 : 1);
int i;
for(line = 0; line < max_lines; line++)
{
printf("x ", line * 16);
/* print hex */
for(i = line * 16; i < (8 + (line * 16)); i++)
{
if(i < len)
printf("x ", (uint8_t)data[i]);
else
printf(" ");
}
printf(" ");
for(i = (line * 16) + 8; i < (16 + (line * 16)); i++)
{
if(i < len)
printf("x ", (uint8_t)data[i]);
else
printf(" ");
}
printf(" ");
/* print ascii */
for(i = line * 16; i < (8 + (line * 16)); i++)
{
if(i < len)
{
if(32 <= data[i] && data[i] <= 126)
printf("%c", data[i]);
else
printf(".");
}
else
printf(" ");
}
printf(" ");
for(i = (line * 16) + 8; i < (16 + (line * 16)); i++)
{
if(i < len)
{
if(32 <= data[i] && data[i] <= 126)
printf("%c", data[i]);
else
printf(".");
}
else
printf(" ");
}
printf("\n");
}
}
2 0
- 16进制打印字符串数据
- android NDK 打印16进制字符串
- Android 打印输出16进制数据
- 使用std流打印16进制字符串示例
- 将16进制数据转换为字符并打印
- 二进制字符串数据转换为16进制数据
- C#编程:字符串转16进制数据以及16进制数据转字符串
- 打印字符串
- printf打印16进制数据,高位补零的方法。
- java 中,将Int 或者 byte 数据用二进制或者16进制打印出来
- C语言 - 以16进制数据形式去打印文件
- 16进制字符串转换成10进制数据
- 将16进制字符串转化成内存二进制数据
- qt将16进制数据转换为字符串
- QT QString字符串转16进制串口发送数据
- iOS 将16数据转换成2进制字符串
- java 二进制数据与16进制字符串相互转化
- 16进制字符串 以前丛 16进制字符串转成数据
- 下拉菜单
- 子查询
- Android 5.x 权限问题解决方法
- C++实验4-百钱买百鸡问题
- Charles断点修改
- 16进制打印字符串数据
- Linux 信号signal处理函数
- Spring boot 入门helloWorld
- 结构体-年月日
- 文章标题
- android原生和H5交互
- c++第三次作业
- 混合APP开发的套路(四):在html页面中打开项目中的Activity(url的方式)
- 极好的学习习惯