原创 浮点数表示方法

2006-12-30 09:18 5475 3 4 分类: 工程师职场

PS:真是学的不如忘的快,今天用到了,竟然都忘光了,所以就整理了一下


单精度浮点数有32位,双精度浮点数有64位,扩展浮点数有80位。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


在单精度浮点数中,主要有符号位(S)、指数(E8位、尾数或者小数部分包含后面的23位。
共计32位,折合4字节
由最高到最低位分别是第313029……0
31
位是符号位,1表示该数为负,0反之。
30-23
位,一共8位是指数位。
22-0
位,一共23位是尾数位。


现在让我们按照IEEE浮点数表示法,一步步的将float型浮点数<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />12345.0f转换为二进制代码。在处理这种不带小数的浮点数时,直接将整数部转化为二进制表示:1 11100010 01000000然后将小数点向左移,一直移到离最高位只有1位,就是最高位的11.11100010010000000一共移动了16位,在布尔运算中小数点每向左移一位就等于在以2为底的科学计算法表示中指数 1,所以原数就等于这样:1.11100010010000000 * ( 2 ^ 16 )好了,现在我们要的尾数和指数都出来了。最高位的1一般就直接省去了


这样尾数的二进制就变成了:11100010010000000最后在尾数的后面补0,一直到补够23位:11100010010000000000000


再回来看指数,一共8位,可以表示范围是0 - 255的无符号整数,也可以表示-128 - 127的有符号整数。但因为指数是可以为负的,所以为了统一把十进制的整数化为二进制时,都先加上127,在这里,我们的16加上127后就变成了143,二进制表示为:10001111
12345.0f
这个数是正的,所以符号位是0,那么我们按照前面讲的格式把它拼起来:


S      E           F
0   10001111   11100010010000000000000
例子2:把浮点数转化为十进制数


S      E           F


1   10010001    10001110001000000000000


符号位是1 偏移指数 10010001145 最后的指数实际为14512718


最后的结果就为(-1)(1.10001110001)(2^18


因为指数在-126+128之间的任意数,所以极大的和极小的都可以表示出来。


浮点数的这两种格式有两种例外:数0.0由全0来表示,而无穷大数的指数则由全1来表示,尾数用全0来表示。


  IEEE754三种浮点数的格式参考
          
数符(s)  阶码(E)   尾数(M)      总位数      十六进制      十进制            
短实数
        1        8         23             32           7FH          127      1~254       
长实数
        1       11       52              64           3FFH         1023      1~2046       
临时实数      1      15       64             80           3FFFH        16383      1~32766       


    


 

 


参考文献:http://it.icxo.com/htmlnews/2004/09/01/314496.htm


http://www.lwlm.com/show.aspx?id=26385&cid=25


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户36438 2007-10-24 20:03

这样的帖子得  顶

相关推荐阅读
用户68661 2007-07-29 17:55
水货和行货
何谓行货呢?行货就是得到生产厂商的认可,由某个商家取得代理权或者直接由该生产厂商的分支机构在某个指定的地区进行销售的产品,由于行货需要让代理商及其分支机构获得合理甚至是暴利的利润,而且必须缴纳符合该地...
用户68661 2007-07-17 21:56
让心休息一下
第一题:)Ps @-]/`GuestEDA中国门户网站iz \:p*K)f9]X6\!W  一只小狗带了足够多的水和食物到沙漠旅行(没有天敌等危害),结果在第EDA中国门户网站~S8G2kp!e@  ...
用户68661 2007-07-14 12:27
[转]基本触发器
一、触发器的概念 复习:组合电路的定义?构成其电路的门电路有何特点?组合电路与时序电路的区别?门电路:在某一时刻的输出信号完全取决于该时刻的输入信号,没有记忆作用。触发器:具有记忆功能的基本逻辑电路,...
用户68661 2007-07-04 22:04
中国半导体行业协会06年十大半导体企业统计结果
为全面总结2006年国内各有关半导体企业所取得的成绩,依据参加全国半导体行业统计企业的上报数据,中国半导体行业协会分别排出2006年度国内10大集成电路设计企业、10大集成电路与分立器件制造企业以及1...
用户68661 2007-06-30 23:19
IC 专业术语
//真的很搞,本来以为离开学校后再也不会考试了,呵呵,但是到公司后还是不断的参加考试,下周更惨,一周就考三次,哈哈。没办法,有些东西还得准备,专业术语也考,早就忘光了。ASIC:  Applicati...
用户68661 2007-06-22 23:49
[转]Ncverilog 命令使用详解
我们知道,由于NC-Verilog使用了Native Compile Code 的技术来加强电路模拟的效率,因此在进行模拟时必须经过compile(ncvlog 命令)以及elaborate(ncel...
我要评论
1
3
关闭 站长推荐上一条 /3 下一条