所以,我有一个 __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/