- •1 Частина
- •Вибір варіанту завдання та визначення вхідних даних
- •Переведення вхідних даних у двійкову систему числення
- •Переведення розрахункових чисел у двійкову, вісімкову, шістнадцяткову і двійково-десяткову системи
- •Уявлення числа в однобайтовому полі
- •Уявлення двійкових чисел у прямому, зворотному і додатковому модифікованому кодах у форматі з фіксованою комою
- •Операції додавання в зворотному і додатковому кодах
- •Уявлення чисел у форматі з плаваючою комою
-
Уявлення чисел у форматі з плаваючою комою
Уявимо числа А та В у форматі з плаваючою комою. Знайдемо F=A+B (використовуючи по черзі знаки ′+′ та ′–′ перед кожним з цих чисел):
-
(+A)+(+B);
-
(+A)+(–B);
-
(–A)+(+B);
-
(–A)+(–B);
Очікувані результати виконання операції додавання в десятковому коді отримаємо заздалегідь. Результат обчислень у двійковому коді представимо в прямому коді, а потім переведемо в десятковий код з метою виконати перевірку.
Для наочності подання числа у форматі з плаваючою комою, ми будемо використовувати нестандартний формат, поданий на рис. 5.1.
Рисунок 5.1 – Наочний формат зображення чисел з плаваючою комою
Таблиця 5.1 – Вхідні дані
|
Система числення |
А |
В |
|
10 |
13,6 |
83,3 |
|
2 |
1101.10011 |
1010011.01001 |
-
Знайдемо суму Х=(+А)+(+В):
Х10 = (+А10) + (+В10)= 13,6 +83,3 = +96,910
Х2 = (+А2) + (+В2)= ?
Запишемо у нормальному вигляді:
А2 = +1101.100112 Анорм = +0.110110011 · 24
В2 = +1010011.010012 Внорм = +0.101001101001· 27
Представимо у машинному прямому коді:
Апр = 01000110110011
Впр = 01110101001101001
Вирівняємо мантиси:
А = +0.000110110011 · 27
В = + 0.101001101001· 27
Представимо у машинному прямому коді з урахуванням вирівнювання:
Авир = 01110000110110011
Ввир = 01110101001101001
Знайдемо суму А+В у додатковому модифікованому коді:
|
|
|
|
|
|
|
|
|
||||||||||
|
А |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
|||
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
В |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
|||
|
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
||||
Хпр = +110000011100пр
Х = 011101100000111002 +0.110000011100· 27 1100000.111002
Переведемо у десяткову систему числення:
1100000.111002 Х10 = 96.610
Перевірка:
1∙26 + 1∙25 + 0∙24 + 0∙23 + 0∙22 + 0∙21 + 0∙20 + 1∙2-1 + 1∙2-2 + 1∙2-3 + 0∙2-4 + 0∙2-5 = 64 + 32 + 0 + 0 + 0 + 0 + 0 + 0.5 + 0.25 + 0.125 + 0 + 0 ~ 96.610

-
Знайдемо суму Х=(-А)+(-В):
Х10 = (-А10) + (-В10)= -13,6 -83,3 = -96,610
Х2 = (-А2) + (-В2)= ?
Запишемо у нормальному вигляді:
А2 = -1101.100112 Анорм = -0.110110011 · 24
В2 = -1010011.010012 Внорм = -0.101001101001· 27
Представимо у машинному прямому коді:
Апр = 01001110110011
Впр = 01111101001101001
Вирівняємо мантиси:
А = -0.000110110011 · 27
В = -0.101001101001· 27
Представимо у машинному прямому коді з урахуванням вирівнювання:
Авир = 01111000110110011
Ввир = 01111101001101001
Знайдемо суму (-А)+(-В) у додатковому модифікованому коді. Для цього інвертуємо А та В і додамо одиницю до їх молодших розрядів:
А:
|
|
|
|
|
|
|
|
|
||||||||||
|
-А |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|||
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|||
|
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
||||
-Амод.дод=11.011010100111
В:
|
|
|
|
|
|
|
|
|
||||||||||
|
-В |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
|||
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|||
|
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
||||
-Вмод.дод=11.110011101010
Знайдемо суму:
|
|
|
|
|
|
|
|
|
|||||||||||||
|
-А |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
||||||
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
-В 1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
||||||
|
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
|||||||
Одиниця не враховується.
Хдод = -001111100100дод Хпр
Інвертуємо та додамо одиницю:
Хпр= -110000011100пр
Х = 011111100000111002 -0. 110000011100· 27 -1100000.11100
Переведемо у десяткову систему числення:
-1100000.111002 Х10 = -96.610
Перевірка:
-(1∙26 + 1∙25 + 0∙24 + 0∙23 + 0∙22 + 0∙21 + 0∙20 + 1∙2-1 + 1∙2-2 + 1∙2-3 + 0∙2-4 + 0∙2-5) = -(64 + 32 + 0 + 0 + 0 + 0 + 0 + 0.5 + 0.25 + 0.125 + 0 + 0) ~ -96.610

-
Знайдемо суму Х=(-А)+(+В):
Х10 = (-А10) + (+В10)= -13,6 +83,3 = + 69,710
Х2 = (-А2) + (+В2)= ?
Запишемо у нормальному вигляді:
А2 = -1101.100112 Анорм = -0.110110011 · 24
В2 = +1010011.010012 Внорм = +0.101001101001· 27
Представимо у машинному прямому коді:
Апр = 01001110110011
Впр = 01110101001101001
Вирівняємо мантиси:
А = -0.000110110011 · 27
В = +0.101001101001· 27
Представимо у машинному прямому коді з урахуванням вирівнювання:
Авир = 01111000110110011
Ввир = 01110101001101001
Знайдемо суму А+В у додатковому модифікованому коді:
В залишається у додатковому коді незмінною, А інвертується та додається до неї одиниця у молодший розряд:
|
|
|
|
|
|
|
|
|
||||||||||
|
-А |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|||
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|||
|
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
||||
Знайдемо суму:
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
-А |
|
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
||||
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
В |
|
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
||||
|
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
|||||
Одиницю не враховуємо
Хпр = +100010110110пр
Х = 011101000101101102 +0.100010110110· 27 +1000101.101102
Переведемо у десяткову систему числення:
+1000101.101102 Х10 = 69.710
Перевірка:
1∙26+0∙25+0∙24+0∙23+1∙22+0∙21+1∙20+1∙2-1+0∙2-2+1∙2-3+1∙2-4+0∙2-5=
64 + 0 + 0 + 0 + 4 + 0 + 1 + 0.5 + 0.125 + 0.0625= ~ 69.710

-
Знайдемо суму Х=(+А)+(-В):
Х10 = (+А10) + (+В10)= 13,6 -83,3 = -69,710
Х2 = (+А2) + (-В2)= ?
Запишемо у нормальному вигляді:
А2 = +1101.100112 Анорм = +0.110110011 · 24
В2 = -1010011.010012 Внорм = -0.101001101001· 27
Представимо у машинному прямому коді:
Апр = 01000110110011
Впр = 01111101001101001
Вирівняємо мантиси:
А = +0.000110110011 · 27
В = -0.101001101001· 27
Представимо у машинному прямому коді з урахуванням вирівняння:
Авир = 01110000110110011
Ввир = 01111101001101001
Знайдемо суму А+В у додатковому модифікованому коді: А залишиться незмінною, В інвертується та до її молодшого розряду додається 1.
|
|
|
|
|
|
|
|
|
||||||||||
|
-В |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
|||
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|||
|
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
||||
Знайдемо суму:
|
А |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
|||
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
-В
|
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
|||
|
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
||||
Хдод = -011101001010дод Хпр
Проінвертуємо і додамо одиницю: -100010110110
Хпр=-100010110110
Х = 011111000101101102 -0.100010110110 · 27 1000101.101102
Переведемо у десяткову систему числення:
1000101.101102 Х10 = -69.7 10
Перевірка:
-(1∙26+0∙25+0∙24+0∙23+1∙22+0∙21+1∙20+1∙2-1+0∙2-2+1∙2-3+1∙2-4+0∙2-5)=
-(64 + 0 + 0 + 0 + 4 + 0 + 1 + 0.5 + 0.125 + 0.0625) = ~ 69.710

