Почему ведущие нули используются для представления восьмеричных чисел?

Мне всегда было интересно, почему ведущие нули (0) используются для представления восьмеричных чисел вместо & # x2014; например & # x2014;0o, Использование0o было бы так же полезно, но не вызвало бы столько проблем, сколько ведущий0es (например,parseInt('08'); в JavaScript). Каковы причины этого выбора дизайна?

Ответы на вопрос(2)

& Quot; 0b & Quot; часто используется для двоичного, а не восьмеричного. Ведущий "0" Я подозреваю, что & quot;O -ctal & Quot ;.

Если вы знаете, что собираетесь анализировать восьмеричное значение, используйтеparseInt('08', 10); чтобы это относилось к числу как к основанию десять.

 01 нояб. 2017 г., 21:50
@triplee: Вы понимаете, 0 выглядит как O, верно? Это не похоже на то, что люди не заменяли 13773 на числа для y34.
 Hauleth14 июл. 2012 г., 13:18
Да, знаю. Мне только интересно, почему это используется, потому что это немного сбивает с толку новичков. С0b Я совершил ошибку, исправленную на0o.
 14 июл. 2012 г., 14:10
& Quot; Ноль & Quot; как в "восьмеричном"? Едва. Мое предположение было бы, что это был просто распространенный числовой формат дня, очень похожий на гекс сейчас.
Решение Вопроса

Все современные языки импортируют это соглашение из C, который импортировал его из B, который импортировал его из BCPL.

За исключением использования BCPL#1234 для восьмеричного и#x1234 для шестнадцатеричного. B отступил от этого соглашения, потому что # был унарным оператором в B (преобразование целого числа в число с плавающей запятой), поэтому # 1234 нельзя было использовать, а # в качестве базового индикатора заменили на 0.

Дизайнеры B постарались сделать синтаксис очень компактным. Я полагаю, что по этой причине они не использовали двухсимвольный префикс.

Ваш ответ на вопрос