Vdsp(bf561)中的浮点运算(5):float类型表示总结2010-02-01 csdn博客 快乐虾1.1 float的疑问写一行很简单的C代码:float a = 1234.56;用vdsp编译后的汇编代码为:R0 = 20972 ( X ) ;R0.H = 17562 ;[ FP + 0x10 ] = R0 ;有点看不懂,呵呵,R0的值转换为十六进制就是0x449A51EC。根据vdsp文档的说法,其单精度浮点数格式为:

浮点数计算公式:

将0x449A51EC转换为二进制:0100 0100 1001 1010 0101 0001 1110 1100可得:Sign = 0Mantissa = 001 1010 0101 0001 1110 1100Exponent = 1000 1001按照公式

将Exponent转换为十进制,其值为137。将Mantissa转换为十进制,其值为:2
-3 + 2
-4 + 2
-6 + 2
-9 + 2
-11 + 2
-15 + 2
-16 + 2
-17 + 2
-18 + 2
-20 + 2
-21 = 0.125 + 0.0625 + 0.015625 + 0.001953125 + 0.00048828125 + 0.000030517578125 + 0.0000152587890625 + 0.00000762939453125 + 0.000003814697265625 + 0.00000095367431640625 + 0.000000476837158203125 = 0.205625057220458984375代入浮点数计算公式:(-1)
0 + 1. 205625057220458984375 * 2
(137-127)= 1234.56005859375