|
|
1
11
这是意料之中的-将负浮点值转换为无符号int会导致未定义行为(ub)。如果你想把这个值包装起来(也就是ub,btw),那么你需要先转换成一个(有符号的)int,然后再转换成无符号的int。理想情况下,你根本不应该依赖ub,找到一个更好的方法来做你需要做的事情。 |
|
2
4
C标准第6.3.1.4条:
如此喜欢 保罗R 说,这是不确定的行为。 |
|
|
3
0
通过一个有符号的int进行转换。 |
|
|
4
0
此转换未定义,因此不可移植。 根据C99第6.3.1.4条脚注50:
考虑到这个转换是不可移植的,返回0而不是随机的特定转换是一个很合理的解释。这至少有两个原因:(1)标记不可移植的代码,而不是传播它;(2)仅仅删除符号与转换整型的相同值时的情况大不相同,因此不清楚任何特定的替代方案是否更好。 |
|
|
Leo · 为什么carg(-0)返回-pi? 1 年前 |
|
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 1 年前 |
|
|
Alexander · 为什么数字的输出不同? 1 年前 |
|
Ronny · 如何防止程序返回“inf”? 2 年前 |
|
|
EMS · 为什么双重打印的值与C中的浮点值相同,而它们的大小不同? 2 年前 |
|
|
Dakolas · 对python十进制库感到困惑 2 年前 |
|
|
RTC222 · 无法获取vrndscalepd的正确舍入模式代码 2 年前 |