2015-06-03 4 views

ответ

12

011 представляет собой восьмеричное значение и его десятичный эквивалент равен 9. Предшествующая целочисленный литерал с 0 обозначает восьмеричное значение.
Использовать спецификатор %o в printf для печати значения в восьмеричном.

+1

У меня получилось целочисленное переполнение, когда я хотел посчитать количество обманов для этого вопроса. Но на теге C почти нет пользователей, которым это нужно. (Это похоже на вчера: http://stackoverflow.com/a/19652607/3933332) – Rizier123

+1

@ Rizier123; Я бы сказал, что я ленивый парень, да ленивый парень. – haccks

10

Ведущий 0, в качестве int буквальном или int постоянной, представляет значение octal. Он называется восьмеричной константой.

Связанные: C11 стандарт, глава 6.4.4.1, целочисленные константы, пункт 3,

Восьмеричная константа состоит из префикса 0 необязательно следует последовательность цифр 0 только через 7.

7

С 0 в начале числового литерала вы указываете восьмеричную систему. И 11 в восьмеричной системе - 1*8 + 1 = 9.