В каких случаях используется восьмеричная основа?

Я видел, как двоичные и шестнадцатеричные числа использовались довольно часто, но никогда не использовались восьмеричные. Тем не менее, восьмеричное число имеет свое собственное соглашение для использования в некоторых языках (например, начальный 0 указывает на восьмеричное основание). Когда используется восьмеричное число? Каковы некоторые типичные ситуации, когда можно было бы использовать восьмеричное или восьмеричное число, о котором было бы легче рассуждать? Или это просто дело вкуса?


person Community    schedule 09.04.2010    source источник


Ответы (9)


Octal используется как сокращение для представления прав доступа к файлам в системах UNIX. Например, файловый режим rwxr-xr-x будет 0755.

person Community    schedule 09.04.2010
comment
Но поскольку значения идут только от 0 до 7, технически это не то же самое, что десятичное или шестнадцатеричное? - person Neil N; 09.04.2010
comment
Нет, потому что в десятичном виде у вас также будет 8 и 9 и так далее. - person Matti Virkkunen; 09.04.2010
comment
@ Нил, нет, потому что это дало бы вам разные числовые значения - 0x755 равно 011101010101 в двоичном формате, тогда как 0755 равно 111101101. Таким образом, первое будет означать что-то совершенно другое в правах доступа к файлам unix. - person SamB; 09.04.2010
comment
Ах, я думал, что каждая цифра применялась отдельно. 755, конечно, сильно отличается от своего десятичного аналога. - person Neil N; 09.04.2010

Восьмеричное используется, когда количество битов в одном слове кратно 3. Примерами являются древние системы с 18-битными размерами слов, системы с 9-битными байтами или права доступа к файлам unix с 9-битными или 12-битными.

Однако, если количество битов в вашем слове кратно 4, пожалуйста, используйте шестнадцатеричный код, во что бы то ни стало.

person Community    schedule 09.04.2010
comment
Согласен, дает лучшее объяснение и сравнение с другой базой (шестнадцатеричной) - person AlexanderGriffin; 29.01.2018

Восьмеричный используется, когда синтаксис является пережитком веков, когда он, возможно, имел смысл на какой-то платформе (системные слова не всегда были кратны 8 битам). В настоящее время hex - это то, что нужно использовать.

person Community    schedule 09.04.2010

Не думал об этом, но цифровые дисплеи!

Несколько других вариантов использования: http://en.wikipedia.org/wiki/Octal

person Community    schedule 09.04.2010

Одна из основных причин, по которой восьмеричная система использовалась чаще, заключалась в том, что ее легче преобразовать в уме из восьмеричной в двоичную, чем из шестнадцатеричной в двоичную: вам нужно только запомнить двоичное представление 8 восьмеричных цифр (0-7).

В те дни, когда отладка означала чтение содержимого регистров с помощью ряда светодиодов или ввод данных с помощью массива тумблеров, это было большой проблемой. Панели на многих из этих ранних компьютеров сгруппировали светодиоды и переключатели в группы по три, чтобы облегчить это.

Однако шестнадцатеричный формат начал побеждать, поскольку размеры слов, кратные 8-битным байтам, стали побеждать, и необходимость чтения и ввода данных в двоичном формате стала ненужной (с консольным текстовым пользовательским интерфейсом и более поздними отладчиками графического интерфейса).

person Community    schedule 09.04.2010

В авионике метки слов ARINC 429 почти всегда выражаются восьмеричным числом.

person Community    schedule 30.07.2010

Если бы птицы умели считать, я бы предположил, что они используют восьмеричное число. Хотя у большинства птиц на оперенных «руках» 3 пальца, большинство из них являются тетрадактилией, что означает 4 пальца. пальцы на каждой ноге.

person Community    schedule 17.06.2013
comment
Ну и Микки Маус тоже ;-) - person Digital Trauma; 18.06.2013

Музыка, пока вы держитесь подальше от (большинства) диезов и бемолей.

person Community    schedule 30.07.2010
comment
.... Какой? В одной традиционной (то есть на фортепианной) октаве 12 звуков. 12. Не 7. И вы не можете избежать диезов и бемолей в чем-то даже отдаленно серьезном. - person SigTerm; 31.07.2010
comment
В хроматической гамме 12 нот, а в диатонической только 7. Музыкальные ноты обозначаются в соответствии с диатонической шкалой AG, которая представляет собой восьмеричную систему счисления. Сольфедж также путешествует по диатонической гамме. Правда, для представления других 5 полутонов между ними требуются дополнительные метки, но ОП спрашивал об использовании восьмеричной нумерации, а НЕ теории информации, где, конечно, для представления музыки потребуется более 3 бит на ноту. - person richardtallent; 31.07.2010

К вашему сведению, есть несколько мест, где окна и javascript автоматически решают, что число с префиксом нуля является восьмеричным, и преобразуют число.

В Windows, если вы пингуете и адресуете 10.0.2.010, он на самом деле будет пинговать 10.0.2.8.

Windows также делает это, если вы вводите его как адрес ip/dns для компьютера.

Хотя это устарело, Javascript делает это по умолчанию для некоторых функций, таких как parseInt, если вы не укажете систему счисления http://www.w3schools.com/jsref/jsref_parseint.asp

person Community    schedule 30.07.2010
comment
Все, что использует сокеты Windows inet_addr() будет демонстрировать это задокументированное поведение. - person Brian Nixon; 31.07.2010
comment
Перл тоже, видимо. - person ruffin; 29.01.2015