0

int が 0 から始まる場合、どうなるのでしょうか?

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

なぜそれが出力されるのですか:

513

いくつかのコンパイラを試しました。

4

1 に答える 1

7

次に、整数は 8 進数として扱われます。そう、

01001

等しい

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

そこには魔法はありません。

于 2012-08-28T19:33:30.673 に答える