Предмет: Информатика, автор: tocnoviking

Відповідно до свого варіанту запишіть число А у прямому коді у форматі 1 байта, число В у оберненому і доповняльному кодах у форматі 1 байта, число D як двійкове з рухомою крапкою у форматі одинарної (4 байта), подвійної (8 байт), розширеної (10 байт) точності:

Число А: 110

Число В: -78

Число С: 32

Число D: -60,34375
Виконати віднімання від числа В числа С шляхом додавання їх обернених (доповняльних) кодів у форматі одного байта.
Виконати додавання до числа D числа 0.10101·2^-1, а також множення отриманого результату на число 0.10101·2^11.

Ответы

Автор ответа: kent228one
1

Ответ:

Число А у прямому коді у форматі 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`.

Похожие вопросы