【发布时间】:2012-04-26 15:32:01
【问题描述】:
有没有一种有效的方法可以使用现有的float32 和float64 格式存储非负浮点值?
想象一下默认的float32 行为允许负/正:
val = bytes.readFloat32();
如果不需要负值,是否可以允许更大的正值?
val = bytes.readFloat32() + 0xFFFFFFFF;
编辑:本质上,当我知道我只存储正值时,可以稍微修改浮点格式,以允许相同数量的位具有更大的范围或精度。
例如。 float32 格式定义为 1 位 表示符号,8 位 表示指数,23 位 表示分数
如果我不需要符号位怎么办,我们可以用 8 位 表示指数,24 位 表示分数,以便为相同的 32 位提供更高的精度?
【问题讨论】:
-
您是否认为它们就像 int 可以制成无符号 int 并获得另一个位?我不这么认为......否则它已经完成了。
-
你真的那么需要额外的范围吗?
-
告诉我们更多关于您的问题。你为什么要这样做?你可能问错了问题。
标签: c++ floating-point unsigned primitive-types