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

 

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

Перевод чисел между системами счисления, основания которых являются степенями числа 2 (q = 2n), может производиться по упрощённому алгоритму. Такие алгоритмы могут применяться для перевода чисел между двоичной (q = 21), восьмеричной (q = 23) и шестнадцатеричной (q = 24) системами счисления.

 

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

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

2 = 2i . Так как 2 = 21, то i = 1 бит.

Каждый разряд двоичного числа содержит 1 бит информации.

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

8 = 2i . Так как 8 = 23, то i = 3 бита.

Каждый разряд восьмеричного числа содержит 3 бита информации.

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

Переведем таким способом двоичное число 1010012 в восьмеричное:

101    0012 => 518.

Для упрощения перевода можно заранее подготовить таблицу преобразования двоичных триад (групп по 3 цифры) в восьмеричные цифры:

Двоичные триады

000

001

010

011

100

101

110

111

Восьмеричные цифры

0

1

2

3

4

5

6

7

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

Например, преобразуем дробное двоичное число А2 = 0,1101012 в восьмеричную систему счисления:

Двоичные триады

110

101

Восьмеричные цифры

6

5

Получаем: А8 = 0,658.

Теперь преобразуем число 101 001,110 1012 в восьмеричную систему счисления

Вы убедились что это 51,658

Перевод чисел из двоичной системы счисления в шестнадцатеричную. Для записи шестнадцатеричных чисел используются шестнадцать цифр, то есть в каждом разряде числа возможны 16 вариантов записи.

16 = 2i . Так как 16 = 24, то i = 4 бита.

Каждый разряд шестнадцатеричного числа содержит 4 бита информации.

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

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

Переведем целое двоичное число А2 = 1010012 в шестнадцатеричное:

Двоичные тетрады

0010

1001

Шестнадцатеричные цифры

2

9

В результате имеем: А16 = 2916.

Переведем дробное двоичное число А2 =0,1101012 в шестнадцатеричную систему счисления:

Двоичные тетрады

1101

0100

Шестнадцатеричные цифры

D

4

Получаем: А16 = 0,D416.

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

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

Например, преобразуем дробное восьмеричное число А8 = 0,478 в двоичную систему счисления:

Восьмеричные цифры

4

7

Двоичные триады

100

111

Получаем: А2 = 0,1001112 .

Переведем целое шестнадцатеричное число А16 = АВ16 в двоичную систему счисления:

Шестнадцатеричные цифры

А

В

Двоичные тетрады

1010

1011

В результате имеем: А2 = 101010112


Значит

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

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

Списываем и заполняем таблицу используя таблицу соответствия (вертикальная таблица выше)

Записываем в тетрадь разделение двоичных чисел на триады и тетрады.

  1. В таблицу записываем только значащие цифры.

  2. Разделитель при записи рациональных чисел — запятая.

  3. Из восьмеричной системы в шестнадцатеричную переводим через двоичную

  4. Из шестнадцатеричной системы в восьмеричную переводим через двоичную
    для этого нам надо по разному разбивать цифры двоичного числа на группы

    Триады

Bin

Oct

Hex

Сколько нолей дописали разбивая

На триады

На тетрады

11011,01

 

 

 

 

100001,1

 

 

 

 

 

1000,4

 

 

 

 

3567,2

 

 

 

 

 

3АВ,8

 

 

 

 

80,4

 

 

Задание

Чертим в тетради такую же таблицу и вписываем в неё исходные данные

Задание

Или

На 5 - переводим свои двоичные числа в десятичные через развёрнутую форму записи