Как правильно дополнить двоичные числа (с основанием и без него) - PullRequest
1 голос
/ 10 апреля 2011

Итак, я только что получил быстрый вопрос о заполнении нулями. Примеры, которые я сделал ниже, только предполагали, что длина не имеет значения, и нет никакого знакового бита.

a) 1000 = 00000001000
b) 110.101 = 110.00000101
c) 110.101 = 110.10100000

Я знаю, что заполнение целой части двоичного числа впереди - это хорошо (несмотря на буферы и тому подобное). Более того, когда я имею дело с радикальными точками, я никогда не могу вспомнить, как это работает. Вы ставите рядом с основанием (b) или в конце цифры (c). Кроме того, дополняет ли эти числа дополнение к этим числам?

Спасибо

EDIT: Я спрашиваю об этом потому, что я преобразовываю двоичный код в шестнадцатеричный и двоичный в восьмеричный. Для этого мне нужно сгруппировать биты в группы по 4 или 3. У меня недостаточно битов, поэтому мне нужно где-то добавить нули.

1 Ответ

1 голос
/ 10 апреля 2011

Радиус двух работает так же, как числа-10 (согласно Википедии )

Таким образом, части (а) и (с) правильны , но часть (b) имеет значение , а не .

Биты слева от двоичной точки должны следовать тому же алгоритму для нахождения их дополнения, причем MSB дробного бита является положительным.

...