Как вычислить -1,10 + 0,0110 в двоичном формате? - PullRequest
0 голосов
/ 07 мая 2020

Мне нужна помощь с двоичным вычитанием чисел с плавающей запятой. Приходится делать -1,10 + 0,0110.

а) Не понимаю, как понять -1,10. Если что-то подписано, самый верхний бит должен иметь бит «1». Здесь я не знаю количество битов, поэтому я не знаю, содержит ли -1.10 нули или единицы слева. Что означает использование «-» перед двоичным кодом?

б) 1) на картинке показывает мое вычитание и проверку. Очевидно, я что-то не так делаю. Если я заимствую слева, должен ли я иметь «1» во всех позициях битов слева в уменьшаемом значении, или я должен брать столько единиц, сколько необходимо для вычитания? Что я здесь делаю не так?

c) В 2) я пытаюсь использовать два дополнения. Следует дополнить оба числа или только вычитаемое? Должен ли я дополнить его обратно после вычитания? Стоит ли выравнивать по десятичной запятой? Что я здесь делаю не так?

Результат должен быть 1,00, если округлить после машинного сложения до 2 цифр. Но я все равно не получаю 1.00.

Не могли бы вы показать мне, как рассчитать этот конкретный пример и ответить на вопросы из а), б), c)? Моя числовая лекция остановилась из-за моих двоичных грехов.

Example

1 Ответ

2 голосов
/ 07 мая 2020

Использование математики с основанием 2:

-1.10 + 0.0110 похоже на -(1.10 - 0.0110)

1.10 - 0.0110 равно

   1.10
 - 0.0110
 --------
   1.0010   

Округлить до 2 знаков после . , 1.0010 переходит в 1.00 или 1.01. На полпути обычно округляется до значения даже .

   1.00   

Применяя - с самого начала, окончательный ответ:

  -1.00

Кодирование с плавающей запятой в подавляющем большинстве случаев не использует дополнение 2, а значение знака с смещением экспонента. @ Патрисия Шанахан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...