我有一个单精度浮点值,并且没有关于生成此值的样本分布的信息,所以我无法应用sigmoid或执行某种正常化。另外,我知道价值永远是非负面的。将这个float表示为一个字节的最好方法是什么?将浮点数量化为字节的最佳方法
我想到了以下几点:
解释浮动的UInt32的(我预计这将维持数的相对顺序,请纠正我,如果我错了),然后将其扩展到范围一个字节。
UInt32 uVal = BitConverter.ToUInt32(BitConverter.GetBytes(fVal), 0);
byte bVal = Convert.ToByte(uVal * Byte.MaxValue/UInt32.MaxValue);
我会感谢您的意见和任何其他建议。谢谢!
为什么不使用'Single.MaxValue'而不是'UInt32.MaxValue'? – dasblinkenlight
这可能会奏效,但我有点担心浮动指数。 –
@dasblinkenlight我预计大部分数字都会很小 - 大概不会超过10个。所以我很担心,如果我直接用Single.MaxValue进行分割,我总是会把它量化为0. – Sau