将无符号long long转换为float并丢失精度

时间:2013-12-17 12:51:06

标签: c floating-point unsigned-long-long-int

我有两个无符号长号l1l2。 我将这些数字转换为浮动并将其保存为f1f2

f1 = (float) l1;
f2 = (float) l2;

现在考虑l1> l2任意数量,比如说100。

是否存在f1< f2? (此处f1是从l1转换而来的,大于l2。如果是,您能否请证明如何找到这样的号码?

sizeof(float) = 4 and sizeof(unsigned long long) = 8.

1 个答案:

答案 0 :(得分:6)

  

是否存在f1< f2

否:对于任何舍入模式,从整数到浮点的转换正在增加。只要你不改变l1转换和l2转换之间的舍入模式,f1和f2的顺序与l1和l2相同(但它们可能相等,但l1和l2不同)。