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

Для перевода чисел из шестнадцатеричной системы в восьмеричную, воспользуемся соответствующим алгоритмом. Важно заметить, что алгоритм перевода целых и дробных чисел будет отличаться.

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

  1. Перевести шестнадцатеричное число число в восьмеричную систему счисления;
  2. Полученное шестнадцатеричное число перевести в восьмеричную систему.

Подробно о переводе из шестнадцатеричной в десятичную систему смотрите на этой странице, о переводе из десятичной в восьмеричную — здесь. Для целостного понимания, разберем несколько примеров, но для начала вспомним алфавиты восьмеричной, десятичной и шестнадцатеричной систем счисления:

Основание Название Алфавит
8 Восьмеричная 0, 1, 2, 3, 4, 5, 6, 7
10 Десятичная 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
16 Шестнадцатеричная 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Перевод целого шестнадцатеричного числа в восьмеричную систему счисления

Пример 1: перевести число 1a316 из шестнадцатеричной в восьмеричную систему.

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

Для перевода шестнадцатеричного числа 1a316 в десятичную систему, воспользуемся формулой:

A16 = an-1 ∙ 16n-1 + an-2 ∙ 16n-2 + ∙∙∙ + a0 ∙ 160, отсюда:

1a31616=1 ∙ 164 + a ∙ 163 + 3 ∙ 162 + 1 ∙ 161 + 6 ∙ 160 = 1 ∙ 65536 + 10 ∙ 4096 + 3 ∙ 256 + 1 ∙ 16 + 6 ∙ 1 = 65536 + 40960 + 768 + 16 + 6 = 10728610

Таким образом:

1a31616 = 10728610

Полученное число 107286 переведем из десятичной системы счисления в восьмеричную. Для этого, осуществим последовательное деление на 8, до тех пор пока остаток не будет меньше чем 8.

Полученные остатки записываем в обратном порядке, таким образом:

10728610=3214268

Ответ: 1a31616 = 3214268.

Перевод дробного шестнадцатеричного числа в восьмеричную систему счисления

Пример 2: перевести 37.25 из шестнадцатеричной в восьмеричную систему счисления.

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

1. Для перевода числа 1F.625 в десятичную систему воспользуемся формулой:

A16 = an-1 ∙ 16n-1 + an-2 ∙ 16n-2 + ∙∙∙ + a0 ∙ 160 + a-1 ∙ 16-1 + ∙∙∙ + a-m ∙ 16-m, отсюда:

37.2516=3 ∙ 161 + 7 ∙ 160 + 2 ∙ 16-1 + 5 ∙ 16-2 = 3 ∙ 16 + 7 ∙ 1 + 2 ∙ 0.0625 + 5 ∙ 0.00390625 = 48 + 7 + 0.125 + 0.01953125 = 55.1445312510

Таким образом:

37.2516 = 55.1445312510

Обратите внимание! Формула перевода дробного числа в десятичную систему, очень похожа на формулу перевода целого, однако немного отличается.

2. Полученное число 55.14453125 переведем из десятичной системы счисления в восьмеричную. Т.к. полученное число содержит дробную часть, нам потребуется перевести вначале целую часть, а затем дробную. Таким образом необходимо:

  1. Перевести 55 в восьмеричную систему;
  2. Перевести 0.14453125 в восьмеричную систему;

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

Полученные остатки записываем в обратном порядке, таким образом:

5510=678

2.2 Для перевода десятичной дроби 0.14453125 в восьмеричную систему, необходимо выполнить последовательное умножение дроби на 8, до тех пор, пока дробная часть не станет равной 0 или пока не будет достигнута заданная точность вычисления. Получаем:

0.14453125 ∙ 8 = 1.15625 (1)
0.15625 ∙ 8 = 1.25 (1)
0.25 ∙ 8 = 2 (2)

Ответом станет прямая последовательность целых частей произведения. Т.е.

0.1445312510=0.1128

2.3. Осталось соеденить переведенные части, таким образом:

55.1445312510=67.1128

Ответ: 37.2516 = 67.1128.

  • Какое число еще хотите перевести?

    * Все поля обязательны
  • Дробное число вводите через точку
  • Введите от 2 до 16
  • Введите от 2 до 16
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
Adblock
detector