c++ - Printf 和十六进制值

标签 c++ c string printf formatting

所以,我有一个 __be16 类型的值(2 个字节)。在十六进制中,该值表示为十进制的 0x0800 或 2048。 (16^2 * 8)

所以,当我打印这个时;我这样做:

printf("%04X", value); //__be16 value;
                      //Print a hex value of at least 4 characters, no padding.

输出: 0008

printf("%i", value); //Print an integer.

输出: 8

我应该得到 分别是 0800 和 2048,我做错了什么?

最佳答案

我猜 value 是 8。:-)

您使用的是小端机器,例如 x86 吗?我猜 be16 是指该值是大端,您需要交换字节。

关于c++ - Printf 和十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1772485/

相关文章:

java - equalsIgnoreCase 方法不适用于 JOptionPane(或 Scanner)输入

c - 如何在 html 中搜索字符串模式,用 C 编码?

c++ - 分析嵌入式应用程序

c++ - std::stack 是使用双链表实现的吗?

c - 打印 char 数组中单词的最后一个字符

java - 如何正确使用String中实现的compareTo方法?

c++ - 将 C++ vector 转换为 C

c++ - 以编程方式创建 Zip 文件 C++

c - C#line 指令的用例

c - 使用线程的单词总和