【发布时间】:2018-01-02 05:05:52
【问题描述】:
关于溢出的含义,我已经阅读了两个定义。
假设我们有以下添加:
11111111
00000001
--------
100000000
我读到的第一个定义是结果不适合 8 位(在本例中需要 9 位),这称为溢出。
我读过的另一个定义是,如果我们有两个有符号整数的加法(例如二进制补码整数):
10011001
10111011
--------
101010100
那么如果 8 位结果 (01010100) 的符号与两个整数的符号不同(在本例中也不同),则这称为溢出。
哪个定义是正确的?
【问题讨论】:
-
第一个定义是base。二是后遗症
-
它们实际上是一回事
-
一个是有符号的,另一个是无符号的溢出,你应该这样想它们。在这两种溢出情况下,这仅意味着您没有足够的位来正确表示结果。基本上你还需要一点。
标签: math assembly integer overflow twos-complement