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

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

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

Ацд = аn-1 × 2n-1 + аn-2 × 2n-2 + ... + а1 × 21 + а0 × 20.

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

аn-1 × 2n-2 + аn-2 × 2n-3 + ... + а1 ,

а остаток - равен a0.

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

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

а0 , а1 , ... , аn-1.

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

A2 = an-1 ... a1 a0

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

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

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

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

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



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

А2 = a4 a3 a2 a1 a0 = 100112 .

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

Адд = a-1 × 2-1 + a-2 × 2-2 + ...

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

a-1 + a-2 × 2-1 + ...

Целая часть будет равна а-1

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

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

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

A2 = a-1 a-2 ...

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

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

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

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



В результате получаем двоичную дробь:

A2 = 0 , a-1 a-2 = 0,112

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

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

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



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

A16 = a2 a1 a0 = 1A816.

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

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



В результате получаем восьмеричную дробь:

A8 = a-1 a-2 = 0,328.

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



3адания

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

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

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

 

 

Конструктор сайтовuCoz