二进制浮点加法

发布于 2024-11-03 13:38:13 字数 110 浏览 1 评论 0原文

1.000(base2) x 2^-1 + (-0.111(base2) x 2^-1) = .001(base2) x 2^-1 如何计算? 二进制数相加不就是简单的相加吗?我不明白添加是如何工作的..

How does 1.000(base2) x 2^-1 + (-0.111(base2) x 2^-1) = .001(base2) x 2^-1?
To add binary numbers don't you simply just add? I'm not seeing how the addition works..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

回忆追雨的时光 2024-11-10 13:38:13

当你问“你不只是简单地相加吗?”时,我不确定你的意思是什么,但数学是正确的。它基本上采用以 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

I'm not sure what you mean when you ask "don't you simply just add?", but the math is correct. It is basically in base-2 scientific notation.

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
奶茶白久 2024-11-10 13:38:13

浮点数的情况要复杂得多。让我们从整数开始。

要将正数变为负数,请将所有位反转并加一。这称为“补码”算术。如果我们在示例中使用 8 位数字,则 -0111 变为 11111001

现在,当您将数字相加时,00001000+11111001=100000001。最上面位的溢出被丢弃,留下 00000001

Things are a lot more complicated with floating point numbers. Let's start with integers.

To turn a positive number into a negative, you invert all the bits and add one. This is called "two's complement" arithmetic. -0111 becomes 11111001 if we use 8-bit numbers for our example.

Now when you add up the numbers, 00001000+11111001=100000001. The overflow from the upper-most bit gets thrown away, leaving you with 00000001.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文