【发布时间】:2015-01-28 04:44:31
【问题描述】:
我正在尝试用 C 语言编写一个程序来检查内存中的字节并打印它们的内容。给定一个 4 字节的无符号整数,以十六进制将整数的特定字节打印到标准输出的函数是什么样的? printf 是否具有某种内置功能?
这是我要找的界面。
// number - the integer to be examined
// order - the byte to be examined, with 0 being the lowest-order
// (first) byte and 3 being the highest order (last) byte
void print_byte(unsigned number, unsigned order);
如果它对实现很重要,这将是一个 little-endian 机器。
【问题讨论】:
-
printf("%hhX", number >> (order * 8));可能是一个开始。 -
发布一些代码供我们补充和纠正将是一个更好的开始;-)
-
@phadej 不同意这与发布的副本非常匹配。声称的重复显示如何从整数提取到整数。这篇文章需要询问如何“打印”特定字节。当然,代码可以使用副本然后打印结果,但可以存在更严格的方法,如我在上面的评论中所建议的那样绕过整数到整数的转换。
-
@Mawg 对不起,真的没有任何代码。如果可以的话,我总是发布一些sn-p。我要求一些我认为是单行的东西,考虑到 C 有利于处理单个字节。这不是在普通教科书中容易找到的东西,这就是我决定在这里问的原因。
标签: c