内存数据的十六进制Print

简介:

在程序的调试过程中,经常需要输出各种数据,正常情况下使用 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    ,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 编译器 C语言
C语言:数据在内存中的存储形式
C语言:数据在内存中的存储形式
|
1月前
|
存储 C语言
C语言--------数据在内存中的存储
C语言--------数据在内存中的存储
26 0
|
10天前
|
存储 C语言
数据在内存中的存储2
数据在内存中的存储2
|
10天前
|
存储 编译器
数据在内存中的存储1
数据在内存中的存储
|
21天前
|
存储 编译器 程序员
【C语言】整形数据和浮点型数据在内存中的存储
【C语言】整形数据和浮点型数据在内存中的存储
12 0
|
1月前
|
存储 小程序 C语言
【深度剖析数据在内存中的存储】C语言
【深度剖析数据在内存中的存储】C语言
|
1月前
|
存储 小程序 C语言
【C语言进阶】深度剖析数据在内存中的存储
【C语言进阶】深度剖析数据在内存中的存储
|
1月前
|
存储 小程序 编译器
C语言从入门到实战——数据在内存中的存储方式
数据在内存中的存储方式是以二进制形式存储的。计算机中的内存由一系列存储单元组成,每个存储单元都有一个唯一的地址,用于标识它在内存中的位置。计算机可以通过这些地址来定位并访问内存中的数据。 数据在内存中的存储方式取决于数据的类型。数值类型的数据(例如整数、浮点数等)以二进制形式存储,并根据类型的不同分配不同的存储空间。字符串和字符数据由ASCII码存储在内存中。数据结构(例如数组、结构体、链表等)的存储方式也取决于其类型和组织结构。 总之,数据在内存中以二进制形式存储,并根据其类型和组织方式分配不同的存储空间。
43 0
|
1月前
|
存储 小程序 编译器
深度剖析数据在内存中的存储
深度剖析数据在内存中的存储
35 1
|
1月前
|
存储
C进阶:数据在内存中的存储(2)
C进阶:数据在内存中的存储(2)