“世界上有10种人,一种懂二进制,一种不懂。”
二进制:
1、基本符号:0,1
2、基本运算规则:0+0=0,0+1=1,1+0=1,1+1=10
权值表示:
十进制45.5:
45.5=4*10^1+5*10^0+5*10^-1
1011.11的权值表示:
1*2^3+0*2^2+1*2^1+1*2^0+1*2^-1+1*2^-2=11.75
十进制转换为二进制:
十进制整数:
45=Bn-1Bn-2……B1B0
=Bn-1*2^(n-1)+Bn-2*2^(n-2)……B1*2^1+B0*2^0
两边同时除以2,左边余1,右边余B0,则表示B0=1;
继续除以2,左边余0,右边余B1,则表示B1=0;
……
45/2=22...1
22/2=11...0
11/2=5...1
5/2=2...1
2/2=1...0
1/2=0...1
即45的二进制表示为101101,首先计算出的是低位,最后计算出的是高位,且必须计算至商为0为止。
十进制小数:
(0.64)10=(0.B-1B-2......B-m)2
=B-1*2^-1+B-2*2^-2......B-m*2^-m
两边同时乘以2
1.28=B-1*2^0+B-2*2^-1......B-m*2^-(m-1)
即有1=B-1,左边减一,右边减B-1,继续乘以2;
即有0=B-2......
直到计算出B-m为止。
0.64*2=1.28...1
0.28*2=0.56...0
0.56*2=1.12...1
0.12*2=0.24...0
0.24*2=0.48...0
......
到这里,我们可以发现这个计算B-m的过程是无尽的,这就是进制转换所带来的数值误差,并不是所有十进制数都可以等值转换为二进制数。
在误差范围内时,我们的计算到这里就可以停止了,0.64的二进制表示约等于0.10100。
与整数转换比较,首先计算出的是小数的最高位。
任意进制的数值转换为其他进制:
设一个L进制的数B,需要将其转换为R进制的数A,其整数部分有n位,小数部分有m位。
整数转换:
1、使用B除以R,余数为最低位,商继续除以R......重复这个过程直到商为0,余数的倒序就是R进制表示。
2、使用B的每一位数乘以其权值,和即为R进制数,注意其权值也应当用R进制表示。
小数转换:
使用B乘以R,整数部分为最高位,小数部分继续乘以R......重复这个过程直到小数部分位0,整数部分的正序就是
R进制表示,注意可能没有等值表示。