Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Почему 012 * 20 = 200?

#java


Как это вышло, почему ответ 200?

int a = 012;
int b = 20;

System.out.print(a * b)
//result 200

    


Ответы

Ответ 1



В Java целочисленные литералы можно представить в разных системах счисления: Если число начинается с 0x - используется шестнадцатеричная. Если с 0b - двоичная. Если начинается просто с нуля - используется восьмеричная, как раз как в вашем случае. В остальных случаях используется десятичная система счисления. То есть получается, что a = 012 и a = 10 это одно и то же.

Комментариев нет:

Отправить комментарий