Минимальные биты, необходимые для представления двоичного числа дополнения - PullRequest
1 голос
/ 20 ноября 2011

Мне нужно выяснить, как мы можем представить -1 и -3 в минимальном количестве битов в системе счисления с дополнением до двух.Я рассчитал ответ 1 и 111, но ответы кажутся неправильными.Я был бы очень благодарен, если бы я мог получить некоторую помощь.Спасибо

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Вот формула, с которой вы, вероятно, уже знакомы: N' = 2^n - N. Где n - количество битов, N ' - десятичное представление дополнения -N , а N - кардинальное число. Например, short int x = -6 будет N' = 2^8 - 6 = 250 при преобразовании в unsigned short int.

Теперь с помощью этой формулы вы можете получить n = log(N+N') (журнал базы 2).

Edit:

Я был более сосредоточен только на количестве бит. Теперь я перечитал ваш вопрос ... Позвольте мне дать вам ответ: Вам нужно как минимум два бита для представления 3, и вам нужен один дополнительный бит для представления signness , что означает, что вам нужно как минимум 3 бита для представления -3. То же самое касается 1. Имея это в виду, [011] = 3, возьмите дополнение одного (инвертирующие биты) => [100] и добавьте 1 => [101] = -3. Что касается -1, вы делаете то же самое. [01] = 1, инвертировать биты => [10] => добавить единицу => [11] = -1.

Вот и все, я думаю ...

0 голосов
/ 08 августа 2013

-1 может быть представлено 1, а -3 может быть представлено 101 (-4 + 1).

111 равно десятичному числу -1 (-4+ 2 + 1).

...