DSP中浮点数的表示方法
Tongxin|2009-03-2015336016336017阅读: 2484
发表文章
首先,介绍IEEE754中浮点数的定义。 这里只介绍单精度浮点数。
%A
%A单精度浮点数由4字节(32位)组成,分为数字s(0为正数,1为负数)、以步骤e ) 2为底)、尾数x 3个段。 其中数字为1位,占bit31; 楼梯代码8位,占bit30~bit23; 尾数23位,占bit22~bit0。
%A
在DSP中显示%A浮点数:以328.5为例,
%A
%A首先,确定数字s=0;
%A
%A然后将328.5转换为二进制代码以表示101001000.1;
%A
%A再次将源代码101001000.1的小数点向左移位,只留下一位1,即1.010010001,并记录移位后的公式8; 步骤代码可占据8个数字,其可表示有符号的数字,也可表示无符号的数字。 这里采用没有符号的数。 将移位数加127,转换为二进制源代码8 127=135=10000111b,即e=10000111;
%A
%A最后,移位后的源代码1.010010001去除整数部分,只保留小数部分010010001,在其右侧添加0作为23位,即010010001000000000的尾数。
%A
%A之后,将数字、解码、尾数连接起来,在DSP上显示为328.5,变为0x43A44000。
%A
%A将十六进制浮点数转换为十进制。
%A
%A首先读出浮点数数字s、阶码e、尾数x;
%A
%A然后用以下公式计算: (-1 ) ^s* ) 1x ) )2^(e-127 );
%A
%A再次将23位尾数转换为十进制纯小数的方法是先转换为整数,然后除以2^23得到x。
%A
%A有以下两个术语:
%A
%A big endian和little endian :对于整数2882400086,其十六进制源代码为0x AB CD EF 56。 采用big endian方式时,保存时为0x AB CD EF 56; 如果采用little endian方法,则存储将为0x 56 EF CD AB。
%A
%A在Intel CPU上通常采用little endian方式,在TI DSP上通常采用big endian方式。
%A
%A%A%A
%A
博客内容是网民的个人投稿,只表达了博客的个人见解。 如有侵权,请联系工作人员删除。
参加讨论
请登录.
登录后参与讨论