1.2. Представление чисел в форме с плавающей запятой
Представить двоичные числа А и В в форме с плавающей запятой.
A=1010100,11101(2)= 1,01010011101*26
B=10010,1010011(2)=1,00101010011*24
1.3. Суммирование чисел
4. Просуммировать эти числа в дополнительном и обратном кодах для всех случаев сочетания знаков слагаемых (А>0; В>0) (А<0; В>0) (А>0; В<0) (А<0; В<0). Обратить внимание на случаи переполнения, для которых порядок суммы должен быть изменен после нормализации результата.
Для начала построим таблицу с обратными и дополнительными кодами для значений слагаемых. Построенная таблица, представлена ниже.
|
Прямой |
Обратный |
Дополнительный |
А |
1010100,11101 |
1010100,11101 |
1010100,11101 |
B |
10010,1010011 |
10010,1010011 |
10010,1010011 |
-А |
-1010100,11101 |
10101011,0001 |
10101100,0001 |
-В |
-10010,1010011 |
101101,0101100 |
101110,0101100 |
Далее осуществим сложение чисел.
Сложим числа A>0 и B>0. Ниже представлено сложение данных чисел.
1 |
0 |
1 |
0 |
1 |
0 |
0 |
, |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
1 |
0 |
0 |
1 |
0 |
, |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
, |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
Результат сложение А+B=1100111,1000111(2)≈103,55(10), что соответствует результату сложения данных чисел в десятичной системе счисления с учетом совершенной обрезки чисел до 12 разрядов.
Сложим числа A<0 и B>0. Сначала необходимо получить обратный и после дополнительный код и осуществить сложение полученных чисел. Процесс сложения представлен ниже.
|
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
, |
0 |
0 |
0 |
1 |
0 |
|
|
|
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
, |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
|
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
, |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
Исходя из знакового разряда, видно, что было получено отрицательное число. Преобразовав его в прямой код получим результат -1000010,0100100(2) ≈-66,27(10), что соответствует результату сложения данных чисел в десятичной системе счисления с учетом совершенной обрезки чисел до 12 разрядов.
Сложим числа A>0 и B<0. Сначала необходимо получить обратный и после дополнительный код и осуществить сложение полученных чисел. Процесс сложения представлен ниже.
|
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
, |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
1 |
0 |
1 |
1 |
1 |
0 |
, |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
1 |
0 |
0 |
0 |
0 |
1 |
1 |
, |
0 |
1 |
0 |
0 |
0 |
|
|
|
Исходя из знакового разряда, видно, что было получено положительное число. Преобразовав его в прямой код получим результат 1000010,0100(2) ≈66,27(10), что соответствует результату сложения данных чисел в десятичной системе счисления с учетом совершенной обрезки чисел до 12 разрядов.
Сложим числа A<0 и B<0. Сначала необходимо получить обратный и после дополнительный код и осуществить сложение полученных чисел. Процесс сложения представлен ниже.
|
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
, |
0 |
0 |
0 |
1 |
0 |
|
|
|
|
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
, |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
|
|
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
, |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
Исходя из знакового разряда, видно, что было получено отрицательное число. Преобразовав его в прямой код получим результат -01100111,1000111(2)≈-103,55(10), что соответствует результату сложения данных чисел в десятичной системе счисления с учетом совершенной обрезки чисел до 12 разрядов.
