有一个问题!将浮点数转换为整数
我有一个IEEE 754单精度(32位)浮点数存储在两个连续的16位整数。
我正在使用的处理器没有浮点数学或浮点数据类型!我想要做的是将浮点值转换为16位有符号整数。处理器具有标准的整数数学和位操作(掩码,移位等)。
我除了我将需要失去一些精度从32位浮动到16位整数。该整数还需要一些基于所讨论的值范围的隐含比例因子。
下面是一个简单的例子,使事情更清晰。假设浮动的范围为0.00
至10.00
。在这种情况下,我想整数范围从0 to 1000
。注意隐含缩放因子100.在这种情况下,整数的隐含缩放为100.
我知道IEEE 754包含1个符号位,8位指数(具有127个偏置)和23个位为尾数。
我知道的公式,从浮子的组成部分重构值是:
浮点值=( - 1)^ Sign_bit *(1 +尾数)* 2 ^(指数-127)。
我能看到的主要问题是使用16位有符号整数(范围-32768到+32767)并避免任何溢出或下溢。
我不明白你想要什么回答。 – 2012-02-22 10:04:44