Задача: представить числа в виде прямого кода (sign-magnitude). Обычно для таких задач используют 8-битовый прямой код: 1 бит — знак, 7 бит — величина (модуль).
Что делаем пошагово:
- Читаем число: положительное — знак 0, отрицательное — знак 1.
- Взятие модуля и перевод модуля в бинарную форму в 7 бит (падём слева нулями до 7 бит).
- Получаем 8-битовую запись: [знак][7-битная величина].
Результаты для 64, -32, -16, -4:
- 64: знак 0, модуль 64 = 1000000 (7 бит). Комбинация: 0 1000000 → 01000000 (0x40).
- -32: знак 1, модуль 32 = 0100000 (7 бит). Комбинация: 1 0100000 → 10100000 (0xA0).
- -16: знак 1, модуль 16 = 0010000 (7 бит). Комбинация: 1 0010000 → 10010000 (0x90).
- -4: знак 1, модуль 4 = 0000100 (7 бит). Комбинация: 1 0000100 → 10000100 (0x84).
Итог:
- 64 -> 01000000
- -32 -> 10100000
- -16 -> 10010000
- -4 -> 10000100
Примечание: эти значения предполагают 8-битовый прямой код. При другой фиксированной ширине битов результаты будут отличаться в количестве ведущих нулей в величине. Если нужно привести к другой ширине (например, 16 бит), скажи — пересчитаю.