【发布时间】:2013-07-10 17:36:14
【问题描述】:
我正在尝试理解 C++ 数值属性。因此,我对下溢现象很感兴趣。谁能给我一个下溢的例子以及如何处理它?
【问题讨论】:
-
0U-1。但是,通过放置 UB 标记,我假设您的意思是有符号下溢。 -
@chris(我们假设 32 位无符号)从技术上讲,那里没有下溢/溢出:0U-1 的结果是 4294967295,而不是 -1。 4294967295 适合 32 位无符号整数,因此不会溢出。相比之下,-2147483648-1 的结果是 -2147483649,它不适合有符号的 32 位 int,因此会上溢/下溢。
-
@R.MartinhoFernandes,我知道我应该输入那些多余的字符,即使我很懒,只是使用了
INT_MIN。无论哪种方式都可能少于我必须标记的注释。这有点令人沮丧。 -
使用“numerical”让我觉得问题是关于浮点下溢,这不是未定义的行为(因为编译器选择提供 IEEE 754 浮点语义)。
-
@PascalCuoq 它是关于双下溢
标签: c++ floating-point underflow