Восьмеричная система счисления

Понимание основания 8

Узнать о восьмеричной системе

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

Как работает восьмеричная система

Позиционные значения

Каждая позиция — это степень числа 8:

  • ...512, 64, 8, 1 (8³, 8², 8¹, 8⁰)

Пример: 752 (восьмеричное)

  • 7 × 64 = 448
  • 5 × 8 = 40
  • 2 × 1 = 2
  • Итого = 490 (десятичное)

Почему только 0–7?

Когда достигается 8, происходит перенос в следующий разряд:

  • Десятичное 7 = 7 восьмеричное
  • Десятичное 8 = 10 восьмеричное
  • Десятичное 9 = 11 восьмеричное

Сравнение восьмеричной и десятичной систем

ДесятичноеВосьмеричноеДвоичное
00000
55101
77111
8101000
10121010
162010000
641001000000
1001441100100
25537711111111
51210001000000000

Восьмеричная и двоичная системы

Ключевая связь: каждая восьмеричная цифра соответствует ровно 3 двоичным разрядам.

Из восьмеричной в двоичную

Преобразуйте каждую цифру в 3 бита:

  • 0 = 000, 1 = 001, 2 = 010, 3 = 011
  • 4 = 100, 5 = 101, 6 = 110, 7 = 111

Пример: 752 (восьмеричное) в двоичную

  • 7 = 111
  • 5 = 101
  • 2 = 010
  • Результат: 111101010

Из двоичной в восьмеричную

Сгруппируйте биты по три справа:

  • 111101010 → 111 | 101 | 010 → 7 5 2

Восьмеричная система в правах доступа Unix

Наиболее распространённое современное применение восьмеричной системы — права доступа к файлам в Unix/Linux.

Биты прав доступа

  • r (чтение): 4
  • w (запись): 2
  • x (исполнение): 1

Три категории

  • Владелец: первая цифра
  • Группа: вторая цифра
  • Остальные: третья цифра

Распространённые права доступа

ВосьмеричноеЗначениеСимвол
755Владелец: всё, Остальные: чтение+исполнениеrwxr-xr-x
644Владелец: чтение+запись, Остальные: чтениеrw-r--r--
777Все: все праваrwxrwxrwx
600Только владелец: чтение+записьrw-------

История: почему восьмеричная?

Ранняя вычислительная техника

  • Некоторые ранние компьютеры использовали 12-, 24- или 36-битные слова
  • Эти числа делятся нацело на 3
  • Восьмеричная давала аккуратное представление
  • PDP-8 (12-бит) и PDP-10 (36-бит) активно использовали восьмеричную систему

Переход к шестнадцатеричной

  • 8-битные байты стали стандартом (IBM 360)
  • 8 бит = 2 HEX-цифры (идеальное соответствие)
  • 8 бит = 2,67 восьмеричных цифры (неудобно)
  • Шестнадцатеричная победила для большинства задач

Восьмеричная система в программировании

Запись

  • C/C++/JavaScript: ведущий 0 (опасно!)
  • Python 3: префикс 0o (понятно)
  • Некоторые языки: 0o или @

Опасность ведущих нулей

В C и JavaScript:

  • 010 = 8 (восьмеричное!), а не 10
  • 0777 = 511 (часто используется для прав доступа)

Это вызывает ошибки, когда люди случайно пишут 010, ожидая десятичное число 10.

Современная практика

  • Python 3 требует явный префикс 0o
  • Многие руководства по стилю не рекомендуют неявную восьмеричную запись
  • Восьмеричные литералы в основном используются для прав доступа к файлам

Преобразование десятичного числа в восьмеричное

Метод: последовательное деление на 8

  1. Делите на 8, записывайте остаток
  2. Делите частное на 8, записывайте остаток
  3. Повторяйте, пока частное не станет 0
  4. Прочитайте остатки снизу вверх

Пример: 500 (десятичное) в восьмеричное

ДелениеЧастноеОстаток
500 ÷ 8624
62 ÷ 876
7 ÷ 807

Результат: 764 (восьмеричное)

Заключение

Восьмеричная система (основание 8) была исторически важна в вычислительной технике, когда размеры слов были кратны 3 битам. Хотя шестнадцатеричная система в значительной степени заменила её для общего использования, восьмеричная остаётся незаменимой для прав доступа к файлам в Unix и иногда встречается в устаревших системах. Ключевое свойство — каждая восьмеричная цифра представляет ровно 3 двоичных бита, что делает преобразование простым. Понимание восьмеричной системы помогает при работе с Unix-системами, чтении устаревшего кода и изучении истории вычислительной техники.

Похожие статьи

Восьмеричная система счисления: понимание основания 8 | YounitConverter