zoukankan      html  css  js  c++  java
  • 内存数据的十六进制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

     

  • 相关阅读:
    NYoj 素数环(深搜入门)
    深搜和广搜
    hdu 3449 (有依赖的01背包)
    hdu 1712 (分组背包入门)
    sql数据库常用语句总结
    常用工具和API的网站收集
    23种设计模式
    sql 联合查询并更新
    sql 去除重复记录
    读<你必须知道的.NET>IL指令笔记
  • 原文地址:https://www.cnblogs.com/zhenjing/p/2021789.html
Copyright © 2011-2022 走看看