В каких ситуациях используется восьмеричная база? - PullRequest
32 голосов
/ 09 апреля 2010

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

Ответы [ 9 ]

43 голосов
/ 09 апреля 2010

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

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

20 голосов
/ 09 апреля 2010

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

6 голосов
/ 09 апреля 2010

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

5 голосов
/ 09 апреля 2010

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

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

4 голосов
/ 09 апреля 2010

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

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

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

3 голосов
/ 31 июля 2010

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

2 голосов
/ 18 июня 2013

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

1 голос
/ 31 июля 2010

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

0 голосов
/ 31 июля 2010

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

В Windows, если вы пингуете и адресуете как 10.0.2.010, это будет фактически пинговать 10.0.2.8

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

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

...