Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
我在这里有示例代码:
捕手的功能是:
在编译此代码后,我在博客here上阅读了一篇文章,为什么程序使用标志
如果我运行的程序没有此标志
如果我使用标志
有人可以解释吗?
编辑
在看到CoolGuy的评论后,我了解了作者如何获取值编号
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
3年前关闭。
我在这里有示例代码:
int main(int argc, char **argv) {
if (argc != 3 || !atoi(argv[2]))
return 1;
signal(SIGFPE, catcher);
return abs(atoi(argv[1])) / atoi(argv[2]);
}
捕手的功能是:
void catcher(int a) {
....
}
在编译此代码后,我在博客here上阅读了一篇文章,为什么程序使用标志
-2147483648 -1
运行?如果我运行的程序没有此标志
-2147483648 -1
,则输出为source code is available in level02.c
如果我使用标志
-2147483648 -1
运行该程序,则输出为WIN!
有人可以解释吗?
编辑
在看到CoolGuy的评论后,我了解了作者如何获取值编号
-2147483648
:) 最佳答案
您是在问作者如何得出这些数字吗?
-2147483648是32位上可表示的最小有符号整数:它写为11111111111111111111111111111111(第一个数字,也就是最高有效数字,是符号; 1表示负数)。
因此,将其除以-1(即更改其符号),结果是2147483648,它不能写在32位上,2147483647是32位上可表示的最大有符号整数。因此,又称“算术例外”。 SIGFPE。
10-08 09:19