Почему мой код дает другой вывод при добавлении нуля спереди? - PullRequest
1 голос
/ 26 февраля 2020

Может кто-нибудь объяснить, почему на выходе 65?

    #include <stdio.h>

    int main()
    {
        int b=0101;
        printf("%d",b);

        return 0;
    }

1 Ответ

1 голос
/ 26 февраля 2020

Потому что 0101 является восьмеричным числом (оно в базе 8). В C восьмеричные числа начинаются с 0. Таким образом, это 64 * 1 + 8 * 0 + 1 * 1 = 65.

...