Board logo

标题: 浮点数格式及与十进制数的转换和程序设计方法-2 [打印本页]

作者: 苹果也疯狂    时间: 2015-1-16 14:00     标题: 浮点数格式及与十进制数的转换和程序设计方法-2

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



2.1 十进制数转换成浮点数



设:十进数为A,则2Z=A,Z=LnA/Ln2,指数P=Int(Z);尾数部分X:X=A/2P,其整数部分隐含为1(零除外),将其小数部分按原码格式化为二进制数,即为尾数的小数部分BY0BY1BY2。而指数偏差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位二进制小数,即是BY0BY1BY2,在最高位添上十进制数的符号位S(因十进制数为正数,故S=0);而Eb=P+7FH,所以,十进制数50.265的32位规格化浮点数即为84H,49H,0FH,5CH。



2.2 浮点数转换为十进制数



设浮点数为EbS.BY0BY1BY2。由于浮点数隐含尾数的整数为1,故尾数X的实际值为:



BY0BY1BY2;指数P=Eb-7FH;故:十进制数



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



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



符号位S=0;指数P=84H-7FH,故P=5;尾数的小数部分为49H,0FH,5CH左移一位,而尾数的整数部分隐含为1,故尾数X的实际值为:1.57078123;十进制数A=(-1)0×25×1.57078123,即A=50.265。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0