Вот как преобразовать заданные числа в двоичный дополнительный код (для наглядности возьмем 8-битный разряд).
Выбор разрядности: 8 бит (типично для школьных задач). Число должно лежать в диапазоне -128 … 127.
Преобразования по шагам
Число 16:
- Это положительное число, его двоичное представление в 8 бит: 00010000.
Число -17:
- Сначала возьмем модуль и запишем его в 8 бит: 00010001 (это 17).
- Инвертируем биты: 11101110.
- Прибавляем 1: 11101111.
- Результат: -17 в 8-битном дополнительном коде — 11101111.
Число -18:
- Модуль 18: 00010010.
- Инвертируем: 11101101.
- Прибавляем 1: 11101110.
- Результат: -18 в 8-битном дополнительном коде — 11101110.
Число -19:
- Модуль 19: 00010011.
- Инвертируем: 11101100.
- Прибавляем 1: 11101101.
- Результат: -19 в 8-битном дополнительном коде — 11101101.
Итог (8 бит):
- 16 → 00010000
- -17 → 11101111
- -18 → 11101110
- -19 → 11101101
Дополнительно (для справки, 16-битный вариант того же набора):
- 16 → 00000000 00010000
- -17 → 11111111 11101111
- -18 → 11111111 11101110
- -19 → 11111111 11101101
Если нужна другая разрядность (например, 16 бит), скажи — переделаю под нужную длину.