В двоичную и наоборот

Существует особый случай перевода, если основание одной системы счисления является целой степенью основания другой системы. В этом случае перевод чисел существенно упрощается. В ЭВМ наиболее часто используется переход между 8-ричной и 2-ичной системами. Поэтому ограничимся рассмотрением только этого случая.

Пусть задано число А в 8-ричной системе:

A=an-1 an-2…a1 a0(8) = an-1´8n-1+an-2´8n-2+…+a1´81+a0´80.

Пусть число А записано в 2-ичной системе счисления:

A=bl-1 bl-2…b2 b1 b0 (2) = bl-1´2l-1+bl-2´2l-2+…+b2´22+b1´21+b0.

Так как числа одинаковые, мы можем приравнять их друг другу:

an-18n-1+an-28n-2+…+a181+a080= bl-1 2l-1+2l-2 2l-2+…+b2 22+b1 21+b0 20 .

Если разделить обе части равенства на 8, то получим одинаковые частные

an-1 8n-2 + an-2 8n-3 +…+ a1 = bl-1 2l-4 + bl-2l-5 +…+ b4 21 + b3

и одинаковые остатки:

a0(8)=b2 22 + b1 21 + b0 20 = b2 b1 b0 (2).

Следовательно, младшая восьмеричная цифра a0(8) выражается трехразрядным двоичным числом b2 b1 b0 (2).

Если частное вновь разделить на 8, то получим

а1(8)=b5 b4 b3 (2).

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

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

 

Пример 3.14. Перевести восьмеричное число 571,034 (8) в двоичное.

Решение. .

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

 

Пример 3.15. Перевести двоичное число 11011111011001 , 1001(2) в восьмеричное.

Решение.

.

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