黑马程序员技术交流社区

标题: 小数在计算机中也是用二进制进行表示,但是如何表示的呢 [打印本页]

作者: 李哲    时间: 2012-2-21 15:47
标题: 小数在计算机中也是用二进制进行表示,但是如何表示的呢
小数在计算机中也是用二进制进行表示,怎么表示?
{:soso_e101:} 可能我这个问题有点问的不对,不好意思。
只看到教程里面进制转换,就有了这个想法。
难道数字和小数点那个点(即.)分别表示?
作者: 陈丹阳    时间: 2012-2-21 17:18
直接转换的话,十进制转成二进制(括号表示次方)
一个数可以表示成:   .....10(-2)+10(-1)+10(0)+10(1)+10(2)+10(3).....
也就可以表示成       .....2(-2)+2(-1)+2(0)+2(1)+2(2)+2(3).....
拿10.25  可以写成 2(3)+2(1)+2(-2):所以二进制就是1010.01
但是不是每一个都那么刚好能除尽的。你弄个10.3你就知道了,
因此小数的存储是以浮点形式存储的,具体百度浮点数的存储方法。


作者: 温昌寿    时间: 2012-2-21 17:25
纯小数的话就是拿给定的十进制数乘以2,只要小数位不为0就继续乘,每次取整数位作为二进制数的小数位由低至高排列(取完后要将小数位变成0),整数位为0。
如  0.375
      *       2
=0.75      小数部分不为0 ,取整数部分0作为二进制数小数部分的第一位
*2
=1.5     取1作为第二位 然后将整数位取成0  
变成
0.5     
*2
=.1.0    此时小数部分为0,取整数部分1作为第三位,加上整数位0即为 0.011   
或者,就是靠经验算法,因为0.375=1/4+1/8,所以就是0.011了。
作者: 李哲    时间: 2012-2-21 19:02
大家的知识很丰富,{:soso_e179:}。我百度搜索浮点数,看得有些晕。不过似乎和小数存储关系很大。有时间,我再好好研究!谢谢!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2