【发布时间】:2016-02-06 14:30:46
【问题描述】:
我想将十六进制 int 值打印为 %d。
当值写成十六进制时,这不是问题:
#include <stdio.h>
int main(void) {
int x=0x18;
int y=0xAB;
printf("%d %d", x, y );
return 0;
}
但是...当这是 dec 值时如何打印?
我想要这样的东西:
- 十进制值:
x = 551 更改为十六进制 x = 227 并打印为 %d ?
在这个练习中,我必须将十六进制整数打印为 %d。
希望我写得干净。 :)
问候,
【问题讨论】:
-
x和y不是“十六进制整数”。它们只是整数。 -
阅读 printf 的手册页
-
您是在尝试将 convert 转换为十六进制表示,然后打印结果字符串,还是在询问使用什么格式说明符来打印十六进制的 int?如果是前者——实现一个基本转换算法。如果是后者——阅读手册(或在 Google 上花 30 秒)。在任何一种情况下 --- 我不知道“使用 %d 打印”是什么意思,因为该说明符以十进制而不是十六进制打印。如果您构造十六进制字符串,则需要
%s将其显示为字符串。