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

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

Алгоритм перевода целых десятичных чисел в двоичную систему счисления. Пусть Аод — целое десятичное число. За­пишем его в виде суммы степеней основания 2 с двоичными коэффициентами. В его записи в развернутой форме будут отсутствовать отрицательные степени основания (числа 2):

Aw = ал-1'2" 1 + а„_ г-2п~2+ ... + а1-21 + а0-2°.

На первом шаге разделим число Аод на основание двоич­ной системы, то есть на 2. Частное от деления будет равно

ал-1'2" 2 + ап-2^П 3 + - + «1,

а остаток — равен а0.

На втором шаге целое частное опять разделим на 2, оста­ток от деления будет теперь равен av

Если продолжать этот процесс деления, то после п-го шага получим последовательность остатков:

а0, а j, ..., fln_x.

Легко заметить, что их последовательность совпадает с обратной последовательностью цифр целого двоичного чис­ла, записанного в свернутой форме:

А = ««-I—«i«o .

Таким образом, достаточно записать остатки в обратной по­следовательности, чтобы получить искомое двоичное число.

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

1. Последовательно выполнять деление исходного целого десятичного числа и получаемых целых частных на осно­вание системы (на 2) до тех пор, пока не получится част­ное, меньшее делителя, то есть меньшее 2.

2. Записать полученные остатки в обратной последователь­ности.

В качестве примера рассмотрим перевод десятичного чис­ла 19 в двоичную систему, записывая результаты в таблицу:

Десятичное число/ Делитель Остаток Цифры  
целое частное (основание системы)   двоичного числа
an 1 i
а,  
а,  
а,  
   

В результате получаем двоичное число: А2 = aia3a2a1a0 = 100112 .

Алгоритм перевода правильных десятичных дробей в двоичную систему счисления. Пусть — правильная деся­тичная дробь. В ее записи в развернутой форме будут отсут- ствать положительные степени основания (числа 2):

Лд = a-i ■ 2 1 + °-2'2"2 + -

На первом шаге умножим число Лдд на основание двоич­ной системы, то есть на 2. Произведение будет равно:

а_ j + а_ 2 • 2 1 + ...

Целая часть будет равна а_г

На втором шаге оставшуюся дробную часть опять умно­жим на 2, получим целую часть, равную а2.

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

Легко заметить, что последовательность полученных чи­сел совпадает с последовательностью цифр дробного двоич­ного числа, записанного в свернутой форме:

А2 — O-ifl-2 ...

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

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

2. Записать полученные целые части произведения в пря­мой последовательности.

В качестве примера рассмотрим перевод десятичной дроби 0,75 в двоичную систему, записывая результаты в таблицу:

Десятичная Множитель Целая часть Цифры  
дробь/дробная (основание произведения двоичного
часть произведения системы)   числа  
0,75   г
0,50  
0,00      

В результате получаем двоичную дробь: А, = 0,о_,о 2 = 0,112.

Перевод чисел из системы с основанием р в систему с основанием q. Перевод чисел из позиционной системы с про­извольным основанием р в систему с основанием q произво­дится по алгоритмам, аналогичным рассмотренным выше.

Рассмотрим алгоритм перевода целых чисел на примере перевода целого десятичного числа А10 = 42410 в шестнадца- теричную систему, то есть из системы счисления с основани­ем р = 10 в систему счисления с основанием q = 16.

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



Десятичное число/ целое частное Делитель (основание системы) Остаток Цифры двоичного числа
ао \ к
Ю(А) а1  
Э2  

В результате получаем шестнадцатеричное число:

-^16 = a2aiao = 1А816 .

Рассмотрим теперь алгоритм перевода дробных чисел на примере перевода десятичной дроби А10 = 0,625 в восьме­ричную систему, то есть из системы счисления с основанием р = 10 в систему счисления с основанием q = 8.

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

Десятичная дробь/дробная часть произведения Множитель (основание системы) Целая часть произведения Цифры двоичного числа
0,40625 а-1
0,25 Э-2 М
0,00    

В результате получаем восьмеричную дробь: А8 = а_1а_2 = 0,328 .

Перевод чисел, содержащих и целую и дробную части, производится в два этапа. Отдельно переводится по соответ­ствующему алгоритму целая часть и отдельно — дробная. В итоговой записи полученного числа целая часть от дробной отделяется запятой.

_ х «

3 ал* а н и я

2.13. Перевести целые десятичные числа 910, 1710 и 24310 в двоич­ную, восьмеричную и шестнадцатеричную системы счисле­ния.

2.14. Перевести десятичные дроби О,210 и 0,3510 в двоичную, вось­меричную и шестнадцатеричную системы счисления с точно­стью до трех знаков после запятой.

2.15. Перевести десятичные числа 3,510 и 47,8510 в двоичную, вось­меричную и шестнадцатеричную системы счисления с точно­стью до трех знаков после запятой.

Наши рекомендации