Перевод чисел между системами счисления, основания которых равно степени числа 2

Перевод чисел между системами счисления, основания которых равны значениям степеней числа 2 (т. е. P = 2 n), можно произвести по более простым алгоритмам. Получим эти правила.

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

Определим информационный вес двоичной цифры. Так как алфавит двоичной системы содержит две цифры (0 и 1), то используя формулу Хартли, имеем:
N = 2 i, 2 = 2 i, откуда i = 1 бит

Аналогично для восьмеричной цифры:
N = 2 i, 8 = 2 i, 2 3 = 2 i, откуда i = 3 бит

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

0 – 000, 1 – 001, 2 – 010, 3 – 011, 4 – 100, 5 – 101, 6 – 110, 7 – 111

Последнее утверждение позволяет сформулировать алгоритм перевода двоичного числа в восьмеричную систему счисления:

  1. Разбить двоичное число на триады, справа налево.
  2. Если в правой группе меньше трех цифр, то добавить ведущие нули.
  3. Каждую триаду перевести в восьмеричную систему счисления.
  4. Записать полученные цифры в соответствующих разрядах восьмеричного числа.

Пример. Перевести двоичное число 10111011102 в восьмеричную систему счисления.

Для решения задачи воспользуемся выше приведенным алгоритмом:

  1. 1.011.101.110
  2. 001.011.101.110
  3. 1 3 5 6
  4. 10111011102 = 13568

Ответ. 1356

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

  1. Разбить двоичное число на триады, справа налево.
  2. Поставить в соответствие каждой восьмеричной цифре двоичную триаду.
  3. Соединить триады и записать двоичное число.
  4. Удалить (если существуют) незначащие нули.

Пример. Перевести восьмеричное число 2578 в двоичную систему счисления.

Используем алгоритм, приведенный выше:

  1. 010.101.111
  2. 010101111
  3. 10101111

Таким образом, 2578 = 101011112

Ответ. 10101111

Перевод между двоичной и шестнадцатеричной системами счисления

Определим информационный вес шестнадцатеричной цифры:

N = 2 i, 16 = 2 i, 2 4 = 2 i, откуда i = 4 бит

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

0 – 000, 1 – 001, 2 – 010, 3 – 011, 4 – 100, 5 – 101, 6 – 110, 7 – 111
8 – 0111, 9 – 1001, A – 1010, B – 1011, C – 1100, D – 1101, E – 1110, F – 1111

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

  1. Разбить двоичное число на тетрады, справа налево.
  2. Если в правой группе меньше четырех цифр, то добавить ведущие нули.
  3. Каждую тетраду перевести в шестнадцатеричную систему счисления.
  4. Записать полученные цифры в соответствующих разрядах шестнадцатеричного числа.

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

Воспользуемся выше приведенным алгоритмом:

  1. 10.0110.1110
  2. 0010.0110.1110
  3. 2 6 E
  4. 10011011102 = 26E16

Ответ. 26E

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

  1. Поставить в соответствие каждой шестнадцатеричной цифре двоичную тетраду.
  2. Соединить тетрады и записать двоичное число.
  3. Удалить (если существуют) незначащие нули.

Пример. Перевести шестнадцатеричное число 3AC16 в двоичную систему счисления.

Используем алгоритм, приведенный выше:

  1. 0011.1010.1100
  2. 001110101100
  3. 1110101100

Таким образом, 3AC16 = 11101011002

Ответ. 1110101100