1.2. Преобразование чисел из одной системысчисления в другую

Подпись: Таблица 1.1
Десятичные, восьмеричные и двоичные эквиваленты
Десятичные числа	Восьмеричные числа	Двоичные числа
010	08	0002
110	18	0012
210	28	0102
310	38	0112
410	48	1002
510	58	1012
610	68	1102
710	78	1112

Основания восьмеричной и шестнадцатеричной систем счисления выражаются целой степенью числа два (8 = 23, 16 = 24).  Этим объясняется простота преобразования чисел, представленных в этих системах счисления, в двоичную систему счисления и обратно.

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

.

В табл. 1.1 приведены эквиваленты десятичных, восьмеричных и двоичных чисел.

Перевод шестнадцатеричных чисел в двоичную систему счисления достигается пред­ставлением цифр шестнадцатеричного числа четырехразрядными двоичными числами. Например:

Подпись: Таблица 1.2
Десятичные, шестнадцатеричные и двоичные эквиваленты
Десятичные числа	Шестнадцатеричные числа	Двоичные числа
010	016	00002
110	116	00012
210	216	00102
310	316	00112
410	416	01002
510	516	01012
610	616	01102
710	716	01112
810	816	10002
910	916	10012
1010	A16	10102
1110	B16	10112
1210	C16	11002
1310	D16	11012
1410	E16	11102
1510	F16	11112

.

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

;

Большую сложность представляет перевод чисел из десятичной системы в двоичную и обратно.  Рассмотрим пример перевода числа 15510 в двоичную систему счисления, процедура перевода приведена на рис.



1.1.

Десятичное число 155 сначала делится на 2, что дает нам частное 77 и остаток 1. Этот остаток становится значением младшего разряда двоичного числа и помещается в крайнюю справа позицию. Затем частное (77) перемещается, как показывает стрелка, и становится следующим делимым. Затем каждое частное последовательно делится на 2 до тех пор, пока не получится частное, равное 0 и остаток, равный 1 (см. рис. 1.1). Последняя строка на рис. 1.1 дает нам результат 15510 = 100110112.

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

На рис. 1.2 представлена процедура перевода числа 333610 в его восьмеричный эквивалент.

В первую очередь число 333610 разделим на 8, что дает частное 417 и остаток 010, причем 010 = 08, восьмеричный 0 становится значением младшего разряда восьмеричного числа. Первое частное (417) становится делимым и снова делится на 8 (вторая строка), что дает частное 52 и остаток 110 = 18, который становится второй цифрой восьмеричного числа. В третьей строке частное (52) становится делимым и деление его на 8 дает частное 6 и остаток 410 =48. В четвертой строке частное 6 разделено на 8 с частным 0 и остатком 610 = 68. Теперь счет закончен последним частным 0. Цифра 68 становится значением старшего разряда восьмеричного числа, и мы можем видеть на рис. 1.2, что 333610 = 64108.

На рис. 1.3 показана последовательность действий по переводу десятичного числа 15797 в шестнадцатеричное.

В первой строке 1579710 делится на 16, что дает частное 98710 и остаток 510, который преобразуется потом в свой шестнадцатеричный эквивалент (510 = 516) и становится цифрой младшего разряда шестнадцатеричного числа. Первое частное (987) становится делимым во второй строке и сно­ва делится на 16, что дает частное 61 и остаток 1110 или шестнадцатеричное B. В третьей строке 61 делится на 16, дает частное 3 и остаток 1310 или D16, а в четвертой строке делимое 3 делится на 16, дает частное 0 и остаток 310 или 316. Когда частное равно 0 (см. четвертую строку рис. 1.3), преоб­разование заканчивается. 316 становится цифрой старшего разряда результата, т.е. 3DB516.