首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

浮点数格式及与十进制数的转换和程序设计方法-2

浮点数格式及与十进制数的转换和程序设计方法-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。
返回列表