我编写了以下代码,期望它输出 211
,但是当我编译并运行它时,我看到了 137
。
有人可以解释一下这是怎么回事吗?谢谢。
#include <stdio.h>
int main()
{
int binary1,binary2;
binary1 = 0100;
binary2 = 0111;
printf("%d\n", binary1 + binary2);
return 0:
}
最佳答案
这些不是二进制数,而是 octal (基数 8):
binary1 = 0100; // = 64
binary2 = 0111; // = 64 + 8 + 1 = 73
printf("%d \n", binary1 + binary2); // = 64 + 73 = 137
关于与文字混淆,C中的算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11494820/