Відповідно до свого варіанту запишіть число А у прямому коді у форматі 1 байта, число В у оберненому і доповняльному кодах у форматі 1 байта, число D як двійкове з рухомою крапкою у форматі одинарної (4 байта), подвійної (8 байт), розширеної (10 байт) точності:
Число А: 110
Число В: -78
Число С: 32
Число D: -60,34375
Виконати віднімання від числа В числа С шляхом додавання їх обернених (доповняльних) кодів у форматі одного байта.
Виконати додавання до числа D числа 0.10101·2^-1, а також множення отриманого результату на число 0.10101·2^11.
Ответы
Ответ:
Число А у прямому коді у форматі 1 байта: `01101110`
Число В у оберненому коді у форматі 1 байта: `10110001`
Число В у доповняльному коді у форматі 1 байта: `10110010`
Виконання віднімання від числа В числа С шляхом додавання їх обернених (доповняльних) кодів у форматі одного байта:
```
В (доповняльний код): 10110010
+ С (прямий код): 00100000
---------------------
11010010
```
Результат додавання - це доповняльний код результуючого числа. Щоб отримати результат операції в прямому коді, ми можемо перетворити його з доповняльного коду на прямий. Оскільки перший бит результуючого числа - це `1`, то це число є від'ємним. Щоб отримати його значення в прямому коду, ми повинні інвертувати всю послідовність і додати `1` до результату:
```
Доповняльний код: 11010010
Інвертуємо: 00101101
+ + 1
---------------------
00101110
```
Отже, результат операції В-С = `-46` в прямому коду.
Щодо числа D та його представлення як двоїчного з рухомою крапкою у форматах одинарної (4 байти), подвойної (8 байт) та розширеної (10 байт) точностей:
Одинична точность (4 байти): `11000010111101011000000000000000`
Подвойная точность (8 байт): `1100000001011110101100000000000000000000000000000000`
Расширенная точность (10 байт): `110000001111010110001011100101100010110001011010`
Для того щоб виконати додавання до числа D числа `0.10101·2^-1`, а також множення отриманого результату на число `0.10101·2^11`, необхiдно спочатку перевести цi числа до десяткової системы числення:
`0.10101·2^-1` = `(0.5 + 0.125 + 0.03125) * 2^-1` = `(0.65625) * 2^-1` = `0.328125`.
`0.10101·2^11` = `(16 + 4 + 1) * 2^11` = `(21) * 2048` = `43008`.
Тепер ми можемо виконати арифметичнi операцiї:
D + (`0.328125`) = `-60,34375 + (-60,015625)` = `-60,015625`.
(`-60,015625`) * (`43008`) = `-2581875`.
Отже результатом буде `-2581875`.