Легкий способ перевести число из восьмеричной системы счисления в десятичную

0
0

Многие инженеры и программисты сталкиваются с задачей перевода чисел из одной системы счисления в другую. Особенно часто приходится конвертировать числа из восьмеричной системы в более привычную нам десятичную систему. Давайте разберем простые и эффективные способы осуществить такой перевод.

Что такое системы счисления и как они работают

В математике существует понятие системы счисления - это способ представления чисел с помощью знаков или цифр. Наиболее распространенными являются:

  • Десятичная система (основание 10)
  • Двоичная система (основание 2)
  • Восьмеричная система (основание 8)
  • Шестнадцатеричная система (основание 16)

В каждой системе используется свой набор цифр для представления чисел. Например, в двоичной системе используются только цифры 0 и 1. А в восьмеричной - цифры от 0 до 7.

Системы счисления можно разделить на позиционные и непозиционные. В позиционных системах цифры в записи числа имеют разный вес в зависимости от занимаемой позиции. Например, в числе 389 десятичной системы цифра 8 имеет вес в 10 раз больше, чем цифра 9. А цифра 3 - в 100 раз больше, чем цифра 8.

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

Рассмотрим подробнее восьмеричную систему счисления. Ее основные особенности:

  • Использует 8 цифр: от 0 до 7
  • Цифры имеют позиционный вес, основание степени 8
  • После цифры 7 идет цифра 10 (в десятичной аналог 100)

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

Десятичная система Восьмеричная система
7 7
10 12
16 20

Как видно из таблицы, число 10 в десятичной системе соответствует числу 12 в восьмеричной. Это связано с тем, что после цифры 7 в восьмеричной системе идет уже 10 (7+1).

Учитель математики объясняет конвертацию из восьмеричной системы в десятичную

Алгоритм перевода из восьмеричной системы в десятичную

Перевод целого восьмеричного числа в десятичное не представляет сложности. Для этого можно использовать следующий алгоритм:

  1. Записать число в развернутом виде, с указанием позиционного веса каждой цифры – как степени числа 8
  2. Перемножить цифры на их весовые коэффициенты
  3. Сложить получившиеся числа

Давайте рассмотрим пример перевода восьмеричного числа 346 в десятичное:

  1. Записываем в развернутом виде:
        3*8
    2
        = 192 4*8
    1
        = 32 6*8
    0
      = 6
  2. Складываем:
      192 + 32 + 6 = 230

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

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

Футуристическое устройство для перевода из восьмеричной системы в десятичную

Рассмотрим теперь как перевести дробное восьмеричное число в десятичную систему. Для этого можно воспользоваться следующей формулой:

Где x - дробное восьмеричное число, а sum - эквивалентное десятичное число.

Давайте переведем конкретный пример - дробное восьмеричное число 0.456. Подставляя его в формулу, получаем:

Итого, дробное восьмеричное число 0.456 эквивалентно десятичному числу 0.375.

Специальные случаи перевода

При переводе восьмеричных чисел в десятичные иногда возникают нестандартные ситуации, требующие особого подхода:

  • Перевод отрицательных чисел
  • Перевод чисел со знаком плюс
  • Перевод чисел в экспоненциальной форме записи

Рассмотрим, как в таких случаях осуществлять перевод в десятичную систему.

Перевод отрицательных восьмеричных чисел

Если перед восьмеричным числом стоит знак минус "-", то сначала переведем положительную часть числа в десятичное значение, а затем поставим перед полученным числом знак минуса.

Например, переведем восьмеричное число -453:

  1. Переводим положительную часть: 453(8) = 275(10)
  2. Ставим минус: -275

Перевод восьмеричных чисел со знаком плюса

Если перед числом стоит знак "+", то при переводе его можно опустить. Перевод осуществляется как для положительного числа:

Например, переведем число +777:

  1. Опускаем знак плюса: 777
  2. Переводим число: 777(8) = 511(10)

Перевод в экспоненциальной форме

Иногда восьмеричные числа записывают в экспоненциальной форме, например: 5.321*10^3. В таком случае сначала переведем основную часть числа, а затем экспоненту.

Рассмотрим на примере числа 4.172*10^2:

  1. Переводим основную часть: 4.172(8) = 2.734(10)
  2. Экспонента остается неизменной: 10^2
  3. Итого: 2.734*10^2

Использование функций языков программирования

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

Функция int()

В Python есть удобная функция int(), которая позволяет легко перевести число из любой системы счисления в десятичную. Ее синтаксис:

int(число, основание системы счисления)

Например, переведем восьмеричное число 0o763 в десятичное:

decimal = int("763", 8) print(decimal) // выведет 499

Функция oct()

А вот для перевода в обратную сторону - из десятичной системы в восьмеричную - можно использовать функцию oct():

oct(decimal)

Переведем число 88 в восьмеричное:

octal = oct(88) print(octal) // выведет 0o130

Онлайн-калькуляторы

Еще один удобный способ перевести числа между системами счисления - воспользоваться специальными онлайн-сервисами. Такие калькуляторы позволяют быстро конвертировать числа в один клик, не устанавливая дополнительное ПО.

Достаточно ввести исходное число, указать систему счисления, в которой оно задано, выбрать систему счисления для результата - и сервис мгновенно переведет число.