gpt4 book ai didi

c++ - C++ 中的整数溢出和整数乘法

转载 作者:行者123 更新时间:2023-12-02 11:25:38 28 4
gpt4 key购买 nike

    int y ;
y = 7000000000*1.0;

这不会在 cpp 中给出错误

虽然

    int y ;
y = 7000000000;

这会导致整数溢出

谁能解释一下这两种情况。

最佳答案

在您的 C++ 实现中,y = 7000000000*1.0y = 7000000000 都会在转换过程中导致 int 中可表示的内容溢出。对于从浮点类型到整数类型的转换,C++ 标准未定义发生此类溢出时的行为。对于从一种整数类型到另一种整数类型的转换,它是实现定义的。

但是,您的编译器在编译期间诊断后者,而无法诊断前者。这并不意味着前者没问题(实际上不是),只是编译器不会报告问题(并且 C++ 标准不要求这样做)。

关于c++ - C++ 中的整数溢出和整数乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60443463/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com