Я видел, как двоичные и шестнадцатеричные числа использовались довольно часто, но никогда не использовались восьмеричные. Тем не менее, восьмеричное число имеет свое собственное соглашение для использования в некоторых языках (например, начальный 0 указывает на восьмеричное основание). Когда используется восьмеричное число? Каковы некоторые типичные ситуации, когда можно было бы использовать восьмеричное или восьмеричное число, о котором было бы легче рассуждать? Или это просто дело вкуса?
В каких случаях используется восьмеричная основа?
Ответы (9)
Octal используется как сокращение для представления прав доступа к файлам в системах UNIX. Например, файловый режим rwxr-xr-x
будет 0755
.
0x755
равно 011101010101
в двоичном формате, тогда как 0755
равно 111101101
. Таким образом, первое будет означать что-то совершенно другое в правах доступа к файлам unix.
- person SamB; 09.04.2010
Восьмеричное используется, когда количество битов в одном слове кратно 3. Примерами являются древние системы с 18-битными размерами слов, системы с 9-битными байтами или права доступа к файлам unix с 9-битными или 12-битными.
Однако, если количество битов в вашем слове кратно 4, пожалуйста, используйте шестнадцатеричный код, во что бы то ни стало.
Восьмеричный используется, когда синтаксис является пережитком веков, когда он, возможно, имел смысл на какой-то платформе (системные слова не всегда были кратны 8 битам). В настоящее время hex - это то, что нужно использовать.
Не думал об этом, но цифровые дисплеи!
Несколько других вариантов использования: http://en.wikipedia.org/wiki/Octal
Одна из основных причин, по которой восьмеричная система использовалась чаще, заключалась в том, что ее легче преобразовать в уме из восьмеричной в двоичную, чем из шестнадцатеричной в двоичную: вам нужно только запомнить двоичное представление 8 восьмеричных цифр (0-7).
В те дни, когда отладка означала чтение содержимого регистров с помощью ряда светодиодов или ввод данных с помощью массива тумблеров, это было большой проблемой. Панели на многих из этих ранних компьютеров сгруппировали светодиоды и переключатели в группы по три, чтобы облегчить это.
Однако шестнадцатеричный формат начал побеждать, поскольку размеры слов, кратные 8-битным байтам, стали побеждать, и необходимость чтения и ввода данных в двоичном формате стала ненужной (с консольным текстовым пользовательским интерфейсом и более поздними отладчиками графического интерфейса).
В авионике метки слов ARINC 429 почти всегда выражаются восьмеричным числом.
Если бы птицы умели считать, я бы предположил, что они используют восьмеричное число. Хотя у большинства птиц на оперенных «руках» 3 пальца, большинство из них являются тетрадактилией, что означает 4 пальца. пальцы на каждой ноге.
Музыка, пока вы держитесь подальше от (большинства) диезов и бемолей.
К вашему сведению, есть несколько мест, где окна и javascript автоматически решают, что число с префиксом нуля является восьмеричным, и преобразуют число.
В Windows, если вы пингуете и адресуете 10.0.2.010, он на самом деле будет пинговать 10.0.2.8.
Windows также делает это, если вы вводите его как адрес ip/dns для компьютера.
Хотя это устарело, Javascript делает это по умолчанию для некоторых функций, таких как parseInt, если вы не укажете систему счисления http://www.w3schools.com/jsref/jsref_parseint.asp
inet_addr()
будет демонстрировать это задокументированное поведение.
- person Brian Nixon; 31.07.2010