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

Восьмеричная система счисления (octal) — это позиционная система с основанием 8, где для записи чисел используются цифры от 0 до 7. Перевод восьмеричных чисел в привычную десятичную систему — базовая операция в информатике и программировании, особенно при работе с правами доступа в Unix-системах и низкоуровневым программированием.

Введите восьмеричное число

Как пользоваться калькулятором

  1. Введите восьмеричное число в поле ввода (используйте только цифры 0-7)
  2. Нажмите кнопку “Перевести” или просто начните вводить данные
  3. Получите результат в десятичной системе счисления с подробным расчетом
  4. Изучите пошаговое решение, чтобы понять принцип преобразования

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

Методология перевода

Алгоритм для целых чисел

Каждая цифра восьмеричного числа умножается на 8 в степени, соответствующей её позиции (отсчёт справа налево, начиная с нуля):

Формула: N₁₀ = aₙ×8ⁿ + aₙ₋₁×8ⁿ⁻¹ + ... + a₁×8¹ + a₀×8⁰

где:

  • N₁₀ — результат в десятичной системе
  • aᵢ — цифра на i-й позиции
  • n — номер позиции (0, 1, 2, …)

Пример 1: Простое число

Переведём 245₈ в десятичную систему:

ПозицияЦифраСтепень 8РасчётЗначение
228² = 642 × 64128
148¹ = 84 × 832
058⁰ = 15 × 15

Итого: 128 + 32 + 5 = 165₁₀

Пример 2: Большое число

Переведём 1752₈ в десятичную систему:

1752₈ = 1×8³ + 7×8² + 5×8¹ + 2×8⁰
      = 1×512 + 7×64 + 5×8 + 2×1
      = 512 + 448 + 40 + 2
      = 1002₁₀

Алгоритм для дробных чисел

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

Пример 3: Переведём 17.4₈:

  • Целая часть: 1×8¹ + 7×8⁰ = 8 + 7 = 15
  • Дробная часть: 4×8⁻¹ = 4×0.125 = 0.5

Результат: 15 + 0.5 = 15.5₁₀

Пример 4: Сложное дробное число

52.36₈:

ЧастьРасчёт
Целая5×8¹ + 2×8⁰ = 40 + 2 = 42
Дробная3×8⁻¹ + 6×8⁻² = 3×0.125 + 6×0.015625 = 0.375 + 0.09375 = 0.46875

Результат: 42 + 0.46875 = 42.46875₁₀

Основные понятия

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

Основание: 8
Цифры: 0, 1, 2, 3, 4, 5, 6, 7
Обозначение: индекс ₈ или префикс 0o (в программировании)

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

Десятичная система счисления

Основание: 10
Цифры: 0-9
Обозначение: индекс ₁₀ или без обозначения (по умолчанию)

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

Таблица соответствия

ВосьмеричнаяДесятичнаяДвоичная
00000
11001
22010
33011
44100
55101
66110
77111
108001 000
2016010 000
10064001 000 000

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

Права доступа в Unix/Linux

Самое распространённое использование восьмеричной системы — обозначение прав доступа к файлам:

chmod 755 script.sh

Расшифровка:

  • 7₈ = 111₂ = rwx (чтение, запись, выполнение для владельца)
  • 5₈ = 101₂ = r-x (чтение и выполнение для группы)
  • 5₈ = 101₂ = r-x (чтение и выполнение для остальных)

Типичные значения прав доступа

ВосьмеричноеДесятичноеПраваОписание
644420rw-r–r–Файлы (владелец редактирует, остальные читают)
755493rwxr-xr-xИсполняемые файлы и директории
777511rwxrwxrwxПолный доступ всем (небезопасно)
600384rw——-Приватные файлы

Программирование

В различных языках программирования восьмеричные числа обозначаются по-разному:

Python:

octal_num = 0o157  # восьмеричное
decimal_num = int('157', 8)  # преобразование
print(decimal_num)  # 111

JavaScript:

let octal = 0o157; // восьмеричное
let decimal = parseInt('157', 8); // преобразование
console.log(decimal); // 111

C/C++:

int octal = 0157;  // восьмеричное (префикс 0)
printf("%d", octal);  // 111

Практические советы

Быстрая проверка

Последняя цифра восьмеричного числа = остаток от деления десятичного на 8

Пример: 165₁₀ ÷ 8 = 20 остаток 5 → последняя цифра 245₈ — это 5

Степени восьмёрки (для запоминания)

СтепеньЗначениеЗапоминание
8⁰1Единица
8Основание
64Шахматная доска
512Половина килобайта
8⁴4096Типичный размер блока

Типичные ошибки

  1. Использование цифр 8 и 9 в восьмеричном числе

    • ❌ Неправильно: 189₈
    • ✅ Правильно: только цифры 0-7
  2. Путаница с позициями при расчёте

    • ❌ Неправильно: считать позиции слева направо
    • ✅ Правильно: нумерация справа налево, начиная с 0
  3. Забывают про степени при умножении

    • ❌ Неправильно: просто сложить цифры
    • ✅ Правильно: умножить каждую цифру на 8 в нужной степени
  4. Путают префиксы в программировании

    • 0 (ноль) — восьмеричная система в C/C++
    • 0o — восьмеричная система в Python/JS
    • 0x — шестнадцатеричная система (НЕ восьмеричная!)

Связанные конвертеры

  • Из десятичной в восьмеричную — обратная операция
  • Из восьмеричной в двоичную — промежуточное преобразование
  • Из восьмеричной в шестнадцатеричную — через двоичную или десятичную

Примечание: Калькулятор предназначен для образовательных и практических целей. Результаты расчётов могут быть ограничены точностью вычислений для очень больших чисел или длинных дробных частей.

Часто задаваемые вопросы

Как перевести восьмеричное число в десятичное?

Умножьте каждую цифру восьмеричного числа на 8 в степени, соответствующей позиции цифры (справа налево, начиная с 0), и сложите полученные произведения. Например: 157₈ = 1×8² + 5×8¹ + 7×8⁰ = 64 + 40 + 7 = 111₁₀

Какие цифры используются в восьмеричной системе?

В восьмеричной системе счисления используются только цифры от 0 до 7. Цифры 8 и 9 в этой системе не существуют.

Зачем нужна восьмеричная система счисления?

Восьмеричная система активно использовалась в программировании для компактной записи двоичных чисел, особенно в Unix-системах для обозначения прав доступа к файлам (например, chmod 755).

Можно ли перевести дробное восьмеричное число в десятичное?

Да. Для целой части применяется стандартный алгоритм, а для дробной части каждая цифра умножается на 8 в отрицательной степени: 12.3₈ = 1×8¹ + 2×8⁰ + 3×8⁻¹ = 8 + 2 + 0.375 = 10.375₁₀