博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存数据的十六进制Print
阅读量:6509 次
发布时间:2019-06-24

本文共 998 字,大约阅读时间需要 3 分钟。

在程序的调试过程中,经常需要输出各种数据,正常情况下使用 printf  cout 即可实现数据输出。然而在输出二进制数据时, printf  out 却有点无能为力。那么如何比较二进制数据是否正确呢?

方案一:文件输出。文件可以输入任何数据,但是需要在程序之外比较文件,这对于少量数据并不划算。

方案二:实现自定义的十六进制输出函数。当然,也可是八进制,一般而言十六进制更易看懂 ( 习惯 ) 。下面给出一个最近实现的此类函数。该函数可将指定长度任何内存数据以十六进制格式输出。 这个程序对 32  64 位的 PC 均适用。

注意: %x 无法正确打印负数,负数总是打印成 32bit 整型数, 64  PC 也是如此。


 

 

 

 


程序输出为:

The Hex output of data :  //char   c = 'A'

        0x41

The Hex output of data :  // char c=’a’

        0x61

        ffffffff

The Hex output of data :  // char c =255

        0xff

The Hex output of data :  // char c = -1

        0xff

        ffffffff

The Hex output of data :   // short sc = -8;

        0xf8ff

        fffffff8

The Hex output of data :

        0x0000000000000000000000000000000000000000

The Hex output of data :     // std::string str = "BRSACP";

        0x425253414350

The Hex output of data :     // buf[0] = 0xFD; buf[1] = 0xFE;

        0xfdfe

The Hex output of data :

        0xfdfe425253414350000000000000000000000000

The Hex output of data :

        0x504341535242fefd

 

本文转自 zhenjing 博客园博客,原文链接:http://www.cnblogs.com/zhenjing/archive/2011/04/20/2021789.html
   ,如需转载请自行联系原作者
你可能感兴趣的文章
Unity Shader 噪声消融特效 - 剑灵死亡特效
查看>>
Eclipse 自动生成 Ant的Build.xml 配置文件
查看>>
添加一条信息到列表,如果重复就替换,
查看>>
C#基础第五天
查看>>
python 小数相加报错 invalid literal for int() with base 10
查看>>
【ubuntu】linux链接库
查看>>
uva 12325 枚举暴力 b
查看>>
多线程问题(JVM重排序)
查看>>
LeetCode 459 Repeated Substring Pattern
查看>>
POJ 3268 Silver Cow Party
查看>>
EMLS项目推进思考
查看>>
Eclipse快捷键 10个最有用的快捷键
查看>>
2018-2019-1 20165302 实验五 通讯协议设计
查看>>
Golang 知识点总结
查看>>
JAVA 8 特性
查看>>
算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
查看>>
WebService之Axis2快速入门(7): Spring与axis整合发布为WebServic
查看>>
Uliweb查看模板调用关系
查看>>
C#与PHP通信压缩
查看>>
关于 Linux
查看>>