c-十六进制数字可以与十进制数字相加/相减吗



用C编程时,假设整数h是十六进制值,整数d是十进制数。我可以在h和d之间做加法或减法吗?或者他们必须在同一个号码系统中?

是的,你可以写:

int x = 100 - 0x100 + 0100;

它混合了十进制、十六进制和八进制。无论如何,在计算发生之前,这些值都会转换为二进制值(在本例中,编译器将进行计算;在运行时不会对其求值)。任何常数都可以被分配了适当值的int值取代:

int d = 100;
int h = 0x100;
int o = 0100;
int x = d + h + o;

是的,他们可以,例如

int x;
x = 0x0F + 10;
printf("%dn", x);

输出:

25

你使用的表示并不重要,它最终会全部转换为二进制。

最新更新