Знатоки систем счисления и представления знаковых чисел, СРОЧНО нужна ваша помощь:
Задания:
Задача 1. Дано: чотири числа у десятковій системі числення. Отримати шістнадцяткові коди, що позначають числа у додатковому коді. Скласти отримані шістнадцяткові коди наступним чином: +A + (+B) -A + (-B) +A + (-B) -A + (+B) Вкажіть усі перенесення. Довжина розрядної сітки обмежена. Вкажіть значення прапорців SF, OF, CF, ZF для кожної суми. 1. A) +39₁₀, -39₁₀ B) +69₁₀, -69₁₀ 2. A) +53₁₀, -53₁₀ B) +78₁₀, -78₁₀
Задача 2. Дано: шістнадцяткові значення знакових чисел у додатковому коді. Вкажіть, у яких прикладах переповнення неможливе (OF = 0). Обчислень ніяких робити не потрібно. Це усне завдання. Потрібно дати грамотне пояснення.
1) 7F … FF; 2) A6 … 5А;
3) С6 … 4А; 4) ЕА … FA;
5) 5B … 29; 6) 8С … 9В;
7) 6D … ЗЕ; 8) A3 … ВА;
9) D7 … DD; 10) 3E … 7А.
Ответы
Відповідь:
Задача 1. Ми будемо використовувати шістнадцяткову систему числення для представлення чисел у додатковому коді. Позначення "+A" вказує на додатковий код числа A, а "-A" вказує на додатковий код числа -A.
Для чисел +39₁₀ та -39₁₀:
+39₁₀ = 0x27 (шістнадцятковий код)
-39₁₀ = 0xD9 (додатковий код у шістнадцятковій формі)
Складаємо шістнадцяткові коди:
+39 + (+69) -39 + (-69) +39 + (-69) -39 + (+69)
Перенесення: SF = 0 (знаковий флаг), OF = 0 (флаг переповнення), CF = 0 (флаг переносу), ZF = 0 (флаг нуля).
Для чисел +53₁₀ та -53₁₀:
+53₁₀ = 0x35 (шістнадцятковий код)
-53₁₀ = 0xDB (додатковий код у шістнадцятковій формі)
Складаємо шістнадцяткові коди:
+53 + (+78) -53 + (-78) +53 + (-78) -53 + (+78)
Перенесення: SF = 0, OF = 0, CF = 0, ZF = 0.
Задача 2. Визначимо, у яких випадках переповнення неможливе (OF = 0) у вказаних шістнадцяткових значеннях:
7F … FF: OF = 0 (переповнення неможливе), оскільки це додатковий код числа -129₁₀.
A6 … 5А: OF = 0 (переповнення неможливе), оскільки це додатковий код числа -90₁₀.
С6 … 4А: OF = 0 (переповнення неможливе), оскільки це додатковий код числа -58₁₀.
ЕА … FA: OF = 0 (переповнення неможливе), оскільки це додатковий код числа -22₁₀.
5B … 29: OF = 1 (переповнення можливе), оскільки це додатковий код числа 136₁₀.
8С … 9В: OF = 1 (переповнення можливе), оскільки це додатковий код числа 44₁₀.
6D … ЗЕ: OF = 1 (переповнення можливе), оскільки це додатковий код числа 18₁₀.
A3 … ВА: OF = 1 (переповнення можливе), оскільки це додатковий код числа 58₁₀.
D7 … DD: OF = 1 (переповнення можливе), оскільки це додатковий код числа 10₁₀.
3E … 7А: OF = 0 (переповнення неможливе), оскільки це додатковий код числа -134₁₀.
Оскільки OF = 1 в прикладах 5-9, переповнення можливе у цих випадках. В інших прикладах переповнення неможливе (OF = 0).
Ще такий момент: тобто переповнення неможливе, якщо число у десятковому коді виходить від‘ємне, а не у діапазоні (-127—127), як я думав ?