首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的代码会安全地检查下溢吗?

我的代码会安全地检查下溢吗?
EN

Stack Overflow用户
提问于 2014-04-25 05:35:29
回答 1查看 270关注 0票数 1

我编写了以下C++代码来检查下溢。我不确定这是不是一个好的做法。

代码语言:javascript
复制
#include <limits>
#include <iostream>

int main()
{
    float d = 1.e-29;
    std::cout<<"d: "<<d<<" underflow? "<<(d<std::numeric_limits<float>::min())<<std::endl;
    d = 1.e-59;
    std::cout<<"d: "<<d<<" underflow? "<<(d<std::numeric_limits<float>::min())<<std::endl;
}

打印输出为

代码语言:javascript
复制
d: 1e-29 underflow? 0
d: 0 underflow? 1
EN

回答 1

Stack Overflow用户

发布于 2014-04-25 05:46:05

在为变量赋值后,不能通过将其与标准限制进行比较来检查下溢或溢出。

简单的例子:

代码语言:javascript
复制
int v1 = INT_MAX;
int v2 = INT_MAX;
int v3 = v1 * v2;

表达式v1 * v2会导致溢出。但是,v3的值仍然是一个有效的int

您必须在v1 * v2之前执行检查,以确定它是否会导致溢出。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23280326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档