从0开始的int发生了什么? ex 00101

时间:2012-08-28 19:32:55

标签: c++

我想知道,当int以零开头时会发生什么?

int main() {
    int myint = 01001;
    cout << myint;
    return 0;
}

为什么输出:

513

我尝试了几个编译器。

1 个答案:

答案 0 :(得分:7)

然后将整数视为八进制数。所以,

01001

等于

1 * 8 ^ 0 + 0 * 8 ^ 1 + 0 * 8 ^ 2 + 1 * 8 ^ 3 = 1 + 0 + 0 + 512 = 513

那里没有魔法。