找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2910|回复: 0
打印 上一主题 下一主题
收起左侧

单精度二进制数表示

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-23 01:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目:Show the IEEE754 binary representation for the floating-point number (10.5)10 in single precision.

单精度存储格式
1 符号位S(sign) - 1bit0代表正号,1代表负号

2 指数位E(exponent) - 8bitE的取值范围为0-255(无符号整数),实际数值e=E-127。
3 尾数位M(mantissa) - 23bit
M也叫有效数字位(significant)、系数位(coefficient), 甚至被称作“小数”。在一般情况下,m=(1.M)2,使得实际起作用范围为1≤尾数<2。


实际例子
对于内部存储数据(00111111 01100110 01100110 01100110)2:符号位(最左侧)S=0。这表示是个正数指数(左侧第2-9位)E=(01111110)2=(126)10,所以e=E-127=-1。尾数(最后的23位)M=(1100110 01100110 01100110)2,m=(1.M)2=(1.7999999523162841796875)10该二进制小数转为10进制的计算方式为1 + (1/2+1/4) + (1/32+1/64) + (1/512+1/1024)……实际值N=1.7999999523162841796875*2^-1=0.89999997615814208984375


十进制转二进制

2.025675                                    
(1)整数部分2,二进制为10
        小数部分0.025675, 二进制是.0000 0110 1001 0010 1010 01
       连起来是10.0000 0110 1001 0010 1010 01,这部分是有效数字。
        所以尾数为: 0000 0011 0100 1001 0101 001(23位)
(2)把小数点移到第一个1的后面,左移了1位, 加上偏移量127:127+1=128,二进制是10000000,这是指数部分。
(3)2.025675是正数,所以符号位是0。把符号位,指数和尾数连起来:
         0 10000000 00000011010010010101001
        把这32位按8位一节整理一下,得:
        0100 0000 0000 0001 1010 0100 1010 1001
       十六进制表示为 4001A4A9

10.5                                    
(1)整数部分10,二进制为1010
        小数部分0.5, 二进制是.1
       连起来是1010.1,这部分是有效数字。
        所以尾数为: 0101 0000 0000 0000 0000 000(23位)
(2)把小数点移到第一个1的后面,左移了3位, 加上偏移量127:127+3=130,二进制是10000010,这是指数部分。
(3)10.5是正数,所以符号位是0。把符号位,指数和尾数连起来:
         0 10000010 01010000000000000000000
        把这32位按8位一节整理一下,得:
        0100 0001 0010 1000 0000 0000 0000 0000
       十六进制表示为 41280000




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表