首页 > 代码库 > [转载]二进制,十进制小数互转
[转载]二进制,十进制小数互转
科学记数法:
在科学记数法中,一个数被写成一个1与10之间的实数与一个10的n次幂的积
782300=7.823×105
0.00012=1.2×10−4
10000=1×104
在电脑或计算器中一般用E或e(英语Exponential)来表示10的幂:
7.823E5=782300
1.2e−4=0.00012
======================================================================
从小数点左边开始算,依次列为第0、1、2……位
从小数点右边开始算,依次列为第-1、-2、-3...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案。
如0.111 = 0*2^0+1*2^(-1)+1*2^(-2)+1*2^(-3)
0.11011 = 0*2^0+1*2^(-1)+1*2^(-2)+0*2^(-3)+1*2^(-4)+1*2^(-5)
==================================================================
十进制小数→→→→→二进制小数 方法:“乘2取整”
对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分.
如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位
如:0.25的二进制
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)
0.8125的二进制
0.8125*2=1.625 取整是1
0.625*2=1.25 取整是1
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)
十进制小数→→→→→八进制小数 方法:“乘8取整”
0.71875)10 =(0.56)8
0.71875*8=5.75 取整5
0.75*8=6.0 取整6
即0.56
十进制小数→→→→→十六进制小数方法:“乘16取整”例如:
(0.142578125)10=(0.248)16
0.142578125*16=2.28125 取整2
0.28125*16=4.5 取整4
0.5*16=8.0 取整8
即0.248
非十进制数之间的转换
(1)二进制数与八进制数之间的转换
转换方法是:以小数点为界,分别向左右每三位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。例如:
(423。45)8=(100 010 011.100 101)2
(1001001.1101)2=(001 001 001.110 100)2=(111.64)8
(2)二进制与十六进制转换
转换方法:以小数点为界,分别向左右每四位二进制合成一位十六进制数,或每一位十六进制数展成四位二进制数,不足四位者补0。例如:
(ABCD。EF)16=(1010 1011 1100 1101.1110 1111)2
(101101101001011.01101)2=(0101 1011 0100 1011.0110 1000)2=(5B4B。68)16
[转载]二进制,十进制小数互转