Преобразование десятичной дроби в дополнение к двум
Инструкции: Преобразуйте эти десятичные числа в 5-битную форму с 2-мя дополнениями, если это возможно. Если это невозможно, объясните, почему это так.
(16) основание 10
По данным онлайн-конвертера:
Из того, что я понимаю,
Если десятичная дробь положительна:
- ШАГ 1: Преобразование величины в двоичную.
- ШАГ 2: Pad 0 для желаемого размера.
Если десятичная дробь отрицательна:
- ШАГ 1: Преобразование величины в двоичную.
- ШАГ 2: Pad 0 для желаемого размера.
- ШАГ 3: инвертировать биты для достижения 1-дополнения.
- ШАГ 4: Добавьте 1 для достижения 2-х дополнений.
Поскольку 16 положительно, я просто преобразовал его в двоичный файл путем повторного деления, дающего (10000) основание 2.
Я больше не дополняю 0, поскольку он уже 5-битный (содержит 5 цифр).
Может кто-нибудь объяснить мне, почему онлайн-конвертер возвращает ошибку (что, я также верю, является правильным ответом)?
2 ответа
С 5 битами вы можете представить до 2^5 разных чисел, так как вы хотите, чтобы отрицательные и положительные числа находились в диапазоне от -16 до +15.
так что вы получите ошибку, поскольку 16 выходит за пределы диапазона 5 бит. Измените на 6 бит, и это должно работать
Вам нужно 6 бит для представления +16, так как значение 10000 представляет -16.
Лучший способ визуализации -
00000-0
00001-1
00010-2
....
01111-15
10000 - (-) 16
10001 - (-) 15
....
Попробуйте взять 2 дополнения 10000, вы должны получить значение 16 в двоичном