最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

单片机浮点数格式说明

IT圈 admin 24浏览 0评论

2024年5月30日发(作者:龚意蕴)

单片机浮点数格式说明

★ MCS-51三字节格式:

浮点数格式如下:

地址 eb BY0 BY1

内容 SEEE EEEE MMMM MMMM MMMM MMMM

用三个字节表示,第一个字节的最高位为数符S,正数为0,负数为1,其余七位为阶码(二进制补码形式);第二字节

为尾数的高字节;第三字节为尾数的低字节,尾数用双字节BCD码纯小数(原码)来表示。

例:已知 a=-123.4;b=0.7577;c=56.34;d=1.276;

用BCD码浮点数表示时,分别为a=831234H;b=007577H;c=025634H;d=011276H。

★ MCS-51三字节浮点数规格化:

为了提高运算精度,正数的尾数最高位规定为1,负数的尾数的最高位规定为0,这种形式的浮点数为规格化数(又称

浮点操作数)。运算之前所有的浮点数都应转成规格化数。

*************************************************************

★ IEEE-754标准的格式:

一个浮点数用两个部分表示,尾数和2的幂,尾数代表浮点上的实际二进制数,2的幂代表指数,指数的保存形式是一

个0到255的8位值,指数的实际值是保存值(0到255)减去127,一个范围在-127到+128之间的值,尾数是一个24位

值(代表大约7个十进制数),最高位MSB通常是1,因此省略不保存,一个符号位表示浮点数是正或负。

地址 eb BY0 BY1 BY2

内容 SEEEEEEE M MMMMMMMM MMMMMMMM

S (第31位)代表符号(数符)位1是负,0是正;

E 偏移127的幂,二进制阶码=(EEEEEEEE)-127;

. 小数点;

M 24位的尾数保存在23位中,只存储23位,隐含最高位1。此方法用最较少的位数实现了较高的有效位数,提高了精

度。

零是一个特定值,幂是0 尾数也是0。

阶码的计算方法:

阶码采用指数的移码,阶码= 指数P+7FH

阶码(移码)eb=指数P+7FH

其中:指数P=int(Z),Z=ln(A)/ln(2)

由1位符号位、8位指数、23位有效数组成。

能表示的数据范围为:±1.2×10^(-38)~3.4×10^38,超出范围为溢出。

精度为2-24 即5.9× 10-8。

-------------------------------------------------------------

如果eb=P+7EH,那么指数P=int(Z)+1 ,

(广洲天龙AVR单片机浮点数格式定义的移码为7EH,而IEEE-754标准定义的是7FH,故我们取移码为7FH)

-------------------------------------------------------------

* 在由二进制浮点数转为十进制定点数时,注意在尾数的左边有一个省略的小数点和1,这个1在浮点数的保存中经常

省略,但在还原时应加上去。

**************************************************************

★ IEEE-754_1标准的格式:

地址 eb BY0 BY1 BY2

内容 PtEEEEEEE M MMMMMMMM MMMMMMMM

Pt 代表阶符,阶符视阶的正负而定;

S 代表符号(数符)位,1是负,0是正;

. 小数点在数符的右边;

E 代表幂偏移,即指数偏差;

2024年5月30日发(作者:龚意蕴)

单片机浮点数格式说明

★ MCS-51三字节格式:

浮点数格式如下:

地址 eb BY0 BY1

内容 SEEE EEEE MMMM MMMM MMMM MMMM

用三个字节表示,第一个字节的最高位为数符S,正数为0,负数为1,其余七位为阶码(二进制补码形式);第二字节

为尾数的高字节;第三字节为尾数的低字节,尾数用双字节BCD码纯小数(原码)来表示。

例:已知 a=-123.4;b=0.7577;c=56.34;d=1.276;

用BCD码浮点数表示时,分别为a=831234H;b=007577H;c=025634H;d=011276H。

★ MCS-51三字节浮点数规格化:

为了提高运算精度,正数的尾数最高位规定为1,负数的尾数的最高位规定为0,这种形式的浮点数为规格化数(又称

浮点操作数)。运算之前所有的浮点数都应转成规格化数。

*************************************************************

★ IEEE-754标准的格式:

一个浮点数用两个部分表示,尾数和2的幂,尾数代表浮点上的实际二进制数,2的幂代表指数,指数的保存形式是一

个0到255的8位值,指数的实际值是保存值(0到255)减去127,一个范围在-127到+128之间的值,尾数是一个24位

值(代表大约7个十进制数),最高位MSB通常是1,因此省略不保存,一个符号位表示浮点数是正或负。

地址 eb BY0 BY1 BY2

内容 SEEEEEEE M MMMMMMMM MMMMMMMM

S (第31位)代表符号(数符)位1是负,0是正;

E 偏移127的幂,二进制阶码=(EEEEEEEE)-127;

. 小数点;

M 24位的尾数保存在23位中,只存储23位,隐含最高位1。此方法用最较少的位数实现了较高的有效位数,提高了精

度。

零是一个特定值,幂是0 尾数也是0。

阶码的计算方法:

阶码采用指数的移码,阶码= 指数P+7FH

阶码(移码)eb=指数P+7FH

其中:指数P=int(Z),Z=ln(A)/ln(2)

由1位符号位、8位指数、23位有效数组成。

能表示的数据范围为:±1.2×10^(-38)~3.4×10^38,超出范围为溢出。

精度为2-24 即5.9× 10-8。

-------------------------------------------------------------

如果eb=P+7EH,那么指数P=int(Z)+1 ,

(广洲天龙AVR单片机浮点数格式定义的移码为7EH,而IEEE-754标准定义的是7FH,故我们取移码为7FH)

-------------------------------------------------------------

* 在由二进制浮点数转为十进制定点数时,注意在尾数的左边有一个省略的小数点和1,这个1在浮点数的保存中经常

省略,但在还原时应加上去。

**************************************************************

★ IEEE-754_1标准的格式:

地址 eb BY0 BY1 BY2

内容 PtEEEEEEE M MMMMMMMM MMMMMMMM

Pt 代表阶符,阶符视阶的正负而定;

S 代表符号(数符)位,1是负,0是正;

. 小数点在数符的右边;

E 代表幂偏移,即指数偏差;

发布评论

评论列表 (0)

  1. 暂无评论