Бинарное дополнение с плавающей точкой - PullRequest
0 голосов
/ 26 апреля 2011

Как 1.000 (base2) x 2 ^ -1 + (-0.111 (base2) x 2 ^ -1) = .001 (base2) x 2 ^ -1?Чтобы добавить двоичные числа, вы просто не добавляете?Я не вижу, как работает дополнение ..

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

Я не уверен, что вы имеете в виду, когда спрашиваете: «Разве вы просто не добавляете?», Но математика верна. Это в основном в научной нотации Base-2.

1.000(base2) x 2^-1 = 0.100(base2)
-0.111(base2) x 2^-1 = -0.0111(base2)

0.100 + (-0.0111) = 0.0001

0.0001 = 0.001(base2) x 2^-1
1 голос
/ 26 апреля 2011

Все гораздо сложнее с числами с плавающей запятой.Давайте начнем с целых чисел.

Чтобы превратить положительное число в отрицательное, вы инвертируете все биты и добавляете один.Это называется арифметикой "дополнения до двух".-0111 становится 11111001, если мы используем 8-битные числа для нашего примера.

Теперь, когда вы складываете числа, 00001000+11111001=100000001.Переполнение от самого верхнего бита отбрасывается, оставляя вас с 00000001.

...