0
我已经做了多次签名溢出,但每次都是turbo c wraparound。 例如:为什么turbo c环绕有符号整数溢出每次虽然有符号整数溢出未定义?
#include <stdio.h>
void main() {
int i = 100000;
printf("%d", i);
getch();
}
输出是-31072
这是预期输出,如果环绕完成。 二进制100000(dec)
是11000011010100000
,最后16位是存储,其中 是1000011010100000
。在两个补码表示1000011010100000
是-31072
。
看看[this](https://www.youtube.com/watch?v=yG1OZ69H_-o)。它很好地解释了未定义的行为,更具体地讨论了未定义的行为以及我们有时使用夸张来描述它的方式。 – wally