Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНЫЙ ПРАКТИКУМ 2012.docx
Скачиваний:
24
Добавлен:
16.08.2019
Размер:
1.27 Mб
Скачать

2.2.1. Преобразование двоичных чисел в десятичные

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

Пример.

Преобразовать целое двоичное число 11001100(2) в десятичное.

Преобразование вещественного двоичного числа 101.011(2) будет выглядеть следующим образом:

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

2.2.2. Преобразование десятичных чисел в двоичные

При работе с ЭВМ, особенно с микропроцессорами, очень часто приходится выполнять преобразование десятичных чисел в двоичные.

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

Проиллюстрируем преобразование на примере.

Пример.

Перевести целое десятичное число 10(10) в двоичное число.

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

Пример.

Десятичное число 57(10) преобразовать в двоичное число.

Для перевода дробных чисел (или дробных частей вещественных чисел) требуется другая процедура преобразования. Рассмотрим ее на примере. Пример. Десятичное число 0.375(10) преобразовать в двоичное число.

Умножим дробь на основание новой системы счисления S = 2: 2*0.375 = 0.75.

Если результат умножения меньше единицы, то СЗР присваивают значение 0. Если больше единицы, то присваивают значение 1. Поскольку 0.75<1, то СЗР=0.

Результат предыдущей операции вновь умножаем на основание новой системы счисления 2. Если бы он был больше единицы, то в этой операции умножения участвовала бы только его дробная часть. В данном случае: 2 0.75=1.5.

Поскольку 1.5>1, то ближайшему разряду справа от СЗР присваивается значение один, а следующая операция умножения производится только над дробной частью числа 1.5, т.е. над числом 0.5: 2*0.5=1.

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

Таким образом, 0.375(10) = 0.011(2).

Если в результате умножения на основание новой системы счисления S = 2 результат не равен единице, операцию останавливают при достижении необходимой точности, а целую часть результата последней операции умножения используют в качестве значения МЗР.

Пример.

Десятичное число 0.34375(10) преобразовать в двоичное число.

Таким образом, 0.34375(10)=0.01011(2)

Пример.

Д есятичное число 0.3(10) преобразовать в двоичное число.

Далее будут следовать повторяющиеся группы операций и результатов, поэтому ограничимся восемью разрядами, т.е. 0.3(10) = 0.01001100(2).

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

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