当前位置:  开发笔记 > 编程语言 > 正文

如何使用C/C++可视化字节

如何解决《如何使用C/C++可视化字节》经验,为你挑选了2个好方法。

我正在通过一些C++培训.到目前为止一切顺利,但我需要一些帮助来加强我正在学习的一些概念.我的问题是如何可视化我创建的对象的字节模式.例如,我如何打印结构,长整数,整数等字节模式?

我理解它可以理解我的学习材料中的图表,我只是想能够在我的一些学习计划中以编程方式显示字节模式.

我意识到这是非常微不足道的,但任何答案都将极大地帮助我理解这些概念.

谢谢.

编辑:我主要使用XCode进行其他开发项目,但是有适用于Windows7和fedora核心的VM.在工作中我使用XP与visual studio 2005.(我无法评论,因为我仍然是一个n00b:D)

我使用了unwind的解决方案,这是我正在寻找的.我也在想,也许我可以使用dos DEBUG命令,因为我也想查看块的内存.再次,这只是为了帮助我强化我正在学习的东西.再次感谢大家!



1> unwind..:

你可以使用这样的函数来打印字节:

void print_bytes(const void *object, size_t size)
{
  // This is for C++; in C just drop the static_cast<>() and assign.
  const unsigned char * const bytes = static_cast(object);
  size_t i;

  printf("[ ");
  for(i = 0; i < size; i++)
  {
    printf("%02x ", bytes[i]);
  }
  printf("]\n");
}

用法看起来像这样,例如:

int x = 37;
float y = 3.14;

print_bytes(&x, sizeof x);
print_bytes(&y, sizeof y);

这显示的字节就像原始数值一样,以十六进制表示,通常用于这些"内存转储".

对于运行"Intel(R)Xeon(R)"CPU的随机(甚至可能是虚拟的,据我所知)Linux机器,它打印:

[ 25 00 00 00 ]
[ c3 f5 48 40 ]

这也轻而易举地说明了Intel系列的CPU:s真的是小端.



2> 小智..:

如果您使用的是gcc和X,则可以使用DDD调试器为您绘制数据结构的漂亮图片.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有