我已经阅读了一些关于字节序及其在 C 语言中的作用的文章,但没有任何内容能真正为我阐明这一点。我刚开始使用 C,我看到了这个例子:
#include <stdio.h>
int main(void) {
int x = 017;
int y = 12;
int diff = x - y;
printf("diff is %d\n", diff);
return 0;
}
然后它询问将打印什么。我编译并运行了示例,得到 diff 是 3,所以 x 是 15。我有点明白这是为什么,但如果有人真的为我澄清它,我将不胜感激。
[1] 我寻找过类似的问题,但没有找到任何能彻底解释问题的问题。如果有人可以将我链接到一个也很好。
最佳答案
在数字前加上0
会告诉编译器将其标记为八进制(基数为 8)的数字
就像给它加上前缀 0x
会告诉它使用十六进制(以 16 为底)
例如:
int x = 05; // 5 in octal
int y = 5; // 5 in decimal
int z = 0x5; // 5 in hex
关于c - 为什么 017 == 15 在 C 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19485548/