![]() |
1
3
一种可能是使用具有任意大小的整数的语言,该整数永远不会溢出/下溢。 否则,如果这是您真正关心的事情,并且您的语言允许的话,那么编写一个类似于整数的包装类,但是检查每个操作是否溢出。您甚至可以让它对调试版本进行检查,并为发布版本对其进行优化。在C++这样的语言中,您可以这样做,并且它的行为几乎完全等同于发布版本的整数,但是对于调试生成,您将得到完整的运行时检查。
编辑: 结果发现有人 doing this already for C++ -当前的实现主要针对Visual Studio,但看起来他们也获得了对gcc的支持。 |
![]() |
2
1
我写了很多测试代码来对我的代码进行范围/有效性检查。这往往会捕捉到这些类型的情况中的大多数——并且肯定会帮助我编写更多的防弹代码。 |
![]() |
3
1
使用高精度浮点数,如 long double . |
![]() |
4
1
我认为您在列表中缺少一个非常重要的选项:为工作选择正确的编程语言。有许多编程语言没有这些问题,因为它们没有固定大小的整数。 |
![]() |
5
0
在选择使用哪种语言时,有比整数大小更重要的考虑因素。如果不知道值是否在界限内,只需检查输入,如果情况非常罕见,则使用异常处理。 |
![]() |
6
0
在许多情况下,检查不一致性的包装器是有意义的。如果两个或多个整数上的加法运算(即加法或乘法)导致的值小于操作数,那么您就知道出了问题。每一个加法运算之后都应该有,
同样,任何逻辑上会导致较小值的操作都应该进行检查,以查看它是否被意外地嵌入。 |
![]() |
7
0
|
![]() |
Muhammad Umer · 为什么这个随机数猜谜游戏模拟产生5.8 4 月前 |
![]() |
Alisa Petrova · 在有向图中更改一对顶点以创建循环 5 月前 |
|
D W · Python-将浮点数从2转换为10到100位小数 6 月前 |
![]() |
Bartol · 确定python龟图形中的角度 10 月前 |
|
randomAlgo · 将弹簧设置为相同长度的成本最低 10 月前 |
![]() |
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 11 月前 |
![]() |
Sergio · python中大量数字的乘法 11 月前 |