Открыть сервисСервис

Перевод чисел из восьмеричной системы счисления в десятичную

Перевод из восьмеричной в десятичную систему счисления — это математическая операция приведения числа, записанного в позиционной восьмеричной системе счисления (ОСС, основание 8), к записи в десятичной системе счисления (ДСС, основание 10). Метод основан на разложении числа по степеням основания и суммировании слагаемых. Восьмеричная система исторически тесно связана с вычислительной техникой: она используется для краткой записи двоичных чисел, поскольку 8 = 2³, и применяется в UNIX-подобных операционных системах для прав доступа к файлам, а также в младших байтах машинных кодов процессоров Intel x86.

Основы позиционных систем счисления

В любой позиционной системе счисления цифра числа умножается на основание системы, возведённое в степень её разряда. Для восьмеричной системы это выражается формулой:

$$N_{10} = \sum_{i=0}^{n} a_i \cdot 8^i,$$

где $a_i$ — цифры восьмеричного числа (от 0 до 7), $i$ — номер разряда, начиная с нуля справа. Полученная сумма и есть значение числа в десятичной системе.

Метод разложения по степеням

Рассмотрим алгоритм перевода на примере числа 157₈:

  1. Записать цифры числа и определить их разряды: 1 — третий разряд, 5 — второй, 7 — нулевой.
  2. Умножить каждую цифру на 8 в соответствующей степени:
  • 1 × 8² = 1 × 64 = 64
  • 5 × 8¹ = 5 × 8 = 40
  • 7 × 8⁰ = 7 × 1 = 7
  1. Просуммировать результаты: 64 + 40 + 7 = 111.

Следовательно, 157₈ = 111₁₀.

Другой пример — число 2046₈:

  • 2 × 8³ = 2 × 512 = 1024
  • 0 × 8² = 0
  • 4 × 8¹ = 32
  • 6 × 8⁰ = 6

Сумма: 1024 + 0 + 32 + 6 = 1062. Таким образом, 2046₈ = 1062₁₀.

Метод «на столбик» (последовательное умножение)

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

  1. Начать со старшей (левой) цифры восьмеричного числа.
  2. Умножить её на 8 и прибавить следующую цифру.
  3. Повторять шаг 2, пока не будут обработаны все цифры.

Пример для числа 157₈:

  • Начальное значение: 1
  • 1 × 8 + 5 = 13
  • 13 × 8 + 7 = 111

Результат тот же: 111₁₀. Метод удобен для ручного счёта и легко реализуется в программном коде.

Перевод дробных восьмеричных чисел

Если восьмеричное число содержит дробную часть, записанную после восьмеричной точки, каждая цифра после точки умножается на 8 в отрицательной степени:

$$N_{10} = \sum_{i=-1}^{m} a_i \cdot 8^i.$$

Пример: перевести 0.3₈ в десятичную запись.

  • 3 × 8⁻¹ = 3 × 1/8 = 0.375.

Следовательно, 0.3₈ = 0.375₁₀.

Для числа 0.14₈:

  • 1 × 8⁻¹ = 0.125
  • 4 × 8⁻² = 4 × 1/64 = 0.0625

Сумма: 0.125 + 0.0625 = 0.1875. То есть 0.14₈ = 0.1875₁₀.

Обратная задача: перевод из десятичной в восьмеричную

Для целых чисел используется метод последовательного деления на 8 с записью остатков. Остатки записываются справа налево, от младшего разряда к старшему.

Пример: перевести 111₁₀ в восьмеричную систему.

  • 111 ÷ 8 = 13, остаток 7
  • 13 ÷ 8 = 1, остаток 5
  • 1 ÷ 8 = 0, остаток 1

Читаем остатки снизу вверх: 157₈.

Для дробной части число последовательно умножается на 8, целые части произведений записываются слева направо до появления требуемой точности или зацикливания.

Таблица соответствий первых чисел

ДесятичноеВосьмеричное
11
77
810
1012
1620
64100
100144
5121000
10001750

Практическое применение

Восьмеричная система используется в UNIX-подобных системах для задания прав доступа к файлам: например, chmod 755 означает, что владелец файла получает права на чтение, запись и исполнение (7 = 4 + 2 + 1), а остальные пользователи — на чтение и исполнение (5 = 4 + 1). Перевод таких прав в десятичную запись выполняется стандартным разложением по степеням.

В программировании восьмеричные константы записываются с ведущим нулём (например, 0755 в языке C) или с префиксом (0o755 в Python, &O755 в Visual Basic). При отладке машинных кодов восьмеричная запись применяется для компактного представления двоичных байтов: один байт (8 бит) записывается ровно тремя восьмеричными цифрами.

Историческая справка

Восьмеричная система счисления получила распространение в XX веке вместе с развитием электронно-вычислительной техники. Система счисления на восьми пальцах приписывается ряду доисторических народов, однако документальных подтверждений этому нет. В русской традиции счёт «восьмёрками» был распространён в торговле (восьмёрка — мера количества товара), что отразилось в понятии «полувосьмёрка» и подобных.

Исторические источники и справочная литература

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru