算术溢出

发布于 2024-09-12 04:39:45 字数 60 浏览 11 评论 0原文

为什么用补码将正数和负数相加时不会发生算术溢出?如果可以的话,请提供一个 8 位有符号整数(字节)的示例。

Why is it that an arithmetic overflow cannot occur when adding an positive and a negative number using two's complement. If you could please provide an example with 8-bit signed integers (bytes).

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

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

发布评论

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

评论(2

你是暖光i 2024-09-19 04:39:58

假设您有一个正数 A 和一个负数 B。它们的总和是S。那么:

S <= A && S >= B

他们的总和将在中间的某个地方。请注意,会有进位,但这不是溢出(不正确的和)。

Assume that you have a positive number A, and a negative number B. Their sum is S. Then:

S <= A && S >= B

Their sum would be somewhere in the middle. Note that there would be a carry, but that is not an overflow(incorrect sum).

巨坚强 2024-09-19 04:39:57

这……听起来有点像家庭作业。您是想使用“作业”标签吗?

不能溢出的原因是,将正数 x 和负数 y 相加将产生一个值 z,使得 abs (z) <绝对值(x) 和 绝对值(z) 绝对值(y)。由于 xy 可以在不溢出的情况下表示,并且 z 比任何一个都更接近零,z 也可以不溢出地表示。

任何一对正数和负数都可以构成一个例子。

This ... kind of sounds like homework. Did you mean to use the 'homework' tag?

The reason you can't overflow is because adding a positive x and a negative number y will produce a value z such that abs(z) < abs(x) and abs(z) < abs(y). Since x and y could be represented without overflow, and z is closer to zero than either one, z can also be represented without overflow.

Any pair of positive and negative numbers form an example.

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