十六进制数可以用十进制数added/subtracted吗?

Can hexadecimal numbers be added/subtracted with decimal numbers?

当用 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("%d\n", x);

输出:

25

你使用的表示方式无所谓,毕竟最终都会全部转换成二进制。