Цель: Понять. Объясняю подробно и пошагово.
Что такое прямой код (sign-magnitude) в восьмиразрядном формате:
- Первый бит — знак: 0 — положительное число, 1 — отрицательное.
- Остальные 7 бит — модуль числа (м magnitude).
- Диапазон по модулю: 0..127. Отрицательные числа кодируются с тем же модулем, но с единицей на знаке.
Преобразуем данные числа: 64, 58, 72, -96.
- 64
- знак: положительное → 0
- модуль: 64
- число 64 в 7 битах: 64 = 2^6 → 1000000 (7 бит)
- итоговый восьмиразрядный код: 0 1000000 → 01000000
- 58
- знак: положительное → 0
- модуль: 58
- число 58 в 7 битах: 58 = 32 + 16 + 8 + 2 → двоично: 0111010 (7 бит)
- итоговый восьмиразрядный код: 0 0111010 → 00111010
- 72
- знак: положительное → 0
- модуль: 72
- число 72 в 7 битах: 72 = 64 + 8 → двоично: 1001000 (7 бит)
- итоговый восьмиразрядный код: 0 1001000 → 01001000
- -96
- знак: отрицательное → 1
- модуль: 96
- число 96 в 7 битах: 96 = 64 + 32 → двоично: 1100000 (7 бит)
- итоговый восьмиразрядный код: 1 1100000 → 11100000
Итоговые восьмиразрядные коды в прямом коде:
- 64 → 01000000
- 58 → 00111010
- 72 → 01001000
- -96 → 11100000
Примечание: в прямом коде может существовать отдельное представление -0 (10000000), поскольку модуль нуля может быть 0. Здесь для -0 не требуется, поэтому мы не добавляли отдельного варианта.