无符号 (-0.0) 的行为是否在 C++ 中定义

Is the behavior of unsigned(-0.0) defined in C++?

本文关键字:是否 C++ 定义 无符号      更新时间:2023-10-16

C++11 4.9 浮积分转换 [conv.fpint]:

浮点类型的 prvalue 可以转换为整数类型的 prvalue。转换蹦蹦跳跳;也就是说,小数部分被丢弃。如果无法在目标类型中表示截断的值,则未定义此行为。

如果值为 -0.0 ,是否定义了行为? 它归结为"截断的值是否无法在目标类型中表示"。 零可以表示。 负零可以吗? 在这种情况下,两个零值是区分还是不区分?

-0.0的截断值是 0 ,可以用整型(包括无符号整型(表示。 没有理由假设 -0.00.0 的截断值是不同的,就像 -0.250.3的截断值不同一样。