Преобразование десятичной дроби в дополнение до двух

Инструкции. Преобразуйте эти десятичные числа в 5-битную форму с дополнением до 2, если это возможно. Если это невозможно, объясните, почему это так.

(16) база 10

Согласно онлайн конвертеру:

Насколько я понимаю,

Если десятичное число положительно:

  • ШАГ 1: Преобразуйте величину в двоичную форму.
  • ШАГ 2: Заполните 0 до желаемого битового размера.

Если десятичное значение отрицательное:

  • ШАГ 1: Преобразуйте величину в двоичную форму.
  • ШАГ 2: Заполните 0 до желаемого битового размера.
  • ШАГ 3: инвертировать биты для получения дополнения до 1.
  • ШАГ 4: Добавьте 1, чтобы получить дополнение до 2.

Поскольку число 16 положительное, я просто преобразовал его в двоичное число повторным делением, получив (10000) основание 2.

Я больше не добавлял 0, так как он уже 5-битный (содержащий 5 цифр).

Может ли кто-нибудь объяснить мне, почему онлайн-конвертер возвращает ошибку (что также, я твердо верю, является правильным ответом)?


person silver    schedule 23.09.2013    source источник


Ответы (2)


С 5 битами вы можете представить до 2 ^ 5 различных чисел, поскольку вам нужны отрицательные и положительные числа в диапазоне от -16 до +15.

поэтому вы получаете ошибку, поскольку 16 выходит за пределы диапазона для 5 бит. Измените на 6 бит, и это должно работать

person yakiro    schedule 23.09.2013

Вам нужно 6 бит для представления +16, так как значение 10000 представляет -16.

Лучший способ визуализации -
00000-0
00001-1
00010-2
....
01111-15
10000-(-)16
10001 -(-)15
....
Попробуйте взять дополнение до 2 от 10000, вы должны получить значение 16 в двоичном формате.

person Aubhik Mazumdar    schedule 16.10.2017