浮点数规格化

来源:百度知道 编辑:UC知道 时间:2024/05/05 11:30:21
00,100;11,110101
怎么做的?

Microchip公司所采用的浮点数格式是IEEE-754标准的变异型。32位浮点数格式为:

其中:×表示一位二进制数0或1;eb 为指数的偏差;S为浮点数的符号位,S=0为正数,S=1为负数;小数点“·”在符号位S的右边;BY0 BY1 BY2为尾数的小数部分。

应特别注意:

⑴ 浮点数隐含其整数部分为1。
⑵ 十进制数0 的浮点数表示为00H,00H, 00H, 00H。

2 浮点数与十进制数之间的相互转换

2.1 十进制数转换成浮点数

设:十进数为A,则2Z=A,Z= lnA/ln2,指数P=int(z);尾数部分X: X=A/2P, 其整数部分隐含为1(零除外),将其小数部分按原码格式化为二进制数,即为尾数的小数部分BY0 BY1 BY2。而指数偏差eb=P+7FH(其中的7FH 为指数的偏移量)。符号位S,视十进制数的正负而确定。

例如十进制数50.265化为32位规格化浮点数:A=50.265,则Z=ln50.265/ln2,P=int(Z),故P=5; X=A/2P=50.265/25=1.57078125,将0.57078125化为23位二进制小数,即是BY0 BY1 BY2,在最高位添上十进制数的符号位S(因十进制数为正数,故S=0);而eb=P+7FH,所以,十进制数50.265的32位规格化浮点数即为84H,49H,0FH,5CH。

2.2 浮点数转换为十进制数

设浮点数为 eb S.BY0 BY1 BY2。由于浮点数隐含尾数的整数为1,故尾数X的实际值为:

BY0 BY1 BY2;指数P=eb-7FH;故:十进制数

A=(-1)S×2P×X

例:32位规格化浮点数84H,49H,0FH,5CH转换为十进制数。

符号位S=0;指数P=84H-7FH,故P=5; 尾数的小数部分为49H,0FH,5CH左移一位,而尾数的整数部分隐含为1,故尾