我想知道,当int以零开头时会发生什么?
int main() {
int myint = 01001;
cout << myint;
return 0;
}
为什么输出:
513
我尝试了几个编译器。
答案 0 :(得分:7)
然后将整数视为八进制数。所以,
01001
等于
1 * 8 ^ 0 + 0 * 8 ^ 1 + 0 * 8 ^ 2 + 1 * 8 ^ 3 = 1 + 0 + 0 + 512 = 513
那里没有魔法。