- •Выполнение работы
- •Для заданного шестнадцатеричного числа a выполнить следующую последовательность преобразований:
- •Представить десятичные числа
- •Выполнить, используя результаты работы по заданию 2, сложение чисел с фиксированной запятой:
- •Выполнить, используя результаты работы по заданию 2, вычитание чисел с фиксированной запятой:
- •Выполнить, используя результаты работы по заданию 2, перемножение чисел с произвольными знаками с фиксированной запятой:
- •Выполнить, используя результаты работы по заданию 3, арифметическую операцию сложения чисел
- •Выполнить, используя результаты работы по заданию 3, арифметическую операцию вычитания чисел:
- •Выполнить, используя результаты работы по заданию 3, арифметическую операцию умножения чисел:
Представить десятичные числа
C1 и C2
в двоичной системе счисления в форме с плавающей запятой в заданном формате: m = 5 (число разрядов мантиссы со знаком), k = 4 (число разрядов порядка со знаком).
C1 = (–4,125)10; C2 = (–30,25)10.
Решение
Заданные числа представляют собой совокупность целой и дробной части в десятичной системе счисления и называются смешанными. При переводе смешанных чисел из десятичной системы счисления в двоичную необходимо перевести отдельно целую и дробную части по правилам перевода целых чисел и правильных дробей, а затем оба полученных результата объединить в одно смешанное число в двоичной системе счисления.
Переводим целые числа в двоичную систему по алгоритму, описанному в задании 2.
[С1]цел2 = –100
[С2]цел2 = –11110
Чтобы перевести правильную дробь (дробную часть числа) из десятичной системы счисления в двоичную необходимо умножить исходную дробь, а затем дробные части получившихся произведений на основание новой (двоичной) системы счисления. Умножение выполняется до тех пор, пока не образуется дробная часть, равная нулю, либо пока не будет достигнута требуемая точность. Правильная дробь числа в новой системе счисления с основанием 2 формируется в виде целых частей получившихся произведений, записанных после запятой в порядке их получения.
Находим дробную часть для С1 :
0 |
, |
1 |
2 |
5 |
* |
|
|
|
2 |
0 |
, |
2 |
5 |
0 |
* |
|
|
|
2 |
0 |
, |
5 |
0 |
0 |
* |
|
|
|
2 |
1 |
, |
0 |
0 |
0 |
Тогда (0,125)10 = (0,001)2. В результате (С1)2 = –100,001.
Для С2 дробная часть равна:
0 |
, |
2 |
5 |
* |
|
|
2 |
0 |
, |
5 |
0 |
* |
|
|
2 |
1 |
, |
0 |
0 |
Тогда (0,25)10 = (0,01)2. И (С2)2 = –11110,01.
Числа с плавающей запятой в ЭВМ представляются по формуле
X = mx * qP,
где mx – мантисса числа X, определяющая значащие цифры числа (| mx | < 1);
р – порядок числа X;
q – основание системы счисления.
Мантисса m представляет собой правильную дробь, т.е. запятая при представлении мантиссы фиксируется перед старшим значащим разрядом.
Порядок р – положительное или отрицательное целое число (запятая при представлении порядка фиксируется после младшего разряда), которое указывает положение запятой в числе.
Порядок р и мантисса m представляются в системе счисления с основанием q = 2.
Чтобы избежать неоднозначности представления чисел в форме с плавающей запятой, обеспечить наибольшую точность представления чисел при заданной разрядности мантиссы, используют представление мантиссы в нормализованном виде. Модуль нормализованной мантиссы должен удовлетворять условию
Старший разряд нормализованной мантиссы в q-ичной системе счисления не должен быть равным нулю. Число с плавающей запятой, мантисса которого нормализована, тоже называется нормализованным. Двоичное число Х будет нормализованным, если в старшем разряде мантиссы mх стоит единица. Мантисса, равная нулю, не может быть нормализована, этот случай рассматривается как потеря значимости числа.
Запишем числа C1 = (–4,125)10 и C2 = (–30,25)10 в двоичной системе счисления с плавающей запятой.
(С1)2 = –100,001.
Получаем мантиссу m1 числа C1, установив запятую перед первой единицей:
m1 = -0,100001.
При этом мы сдвинули запятую влево на три разряда. Следовательно, порядок числа C1 равен трем:
p1 = (+3)10 = (+11)2.
И представление числа C1 с плавающей точкой имеет вид:
C1 = (–4,125)10 = (–100,001)2 = (–0,100001*2 +11 )2 пл. зап..
Аналогично выполняем вычисления для C2:
(С2)2 = –11110,01,
m2 = – 0,1111001,
p2 = (+5)10 = (+101)2.
C2 = (–30,25)10 = (– 11110,01)2 = (–0,1111001*2+101 )2 пл. зап.
Заданные числа в заданном формате с плавающей запятой будут представлены в ЭВМ в следующем виде:
|
Знак |
2-1 |
2-2 |
2-3 |
2-4 |
|
|
Знак |
22 |
21 |
20 |
Мантисса C1 |
1 |
1 |
0 |
0 |
0 |
|
Порядок C1 |
0 |
0 |
1 |
1 |
Мантисса C2 |
1 |
1 |
1 |
1 |
1 |
|
Порядок C2 |
0 |
1 |
0 |
1 |
С1 : m1пр = 11000, p1пр = 0011,
С2 : m2пр = 11111, p2пр = 0101.
