所谓进制转换,就是将一种进制的数字转换为另一种进制的数字。数字的表示形式虽然改变了,但是数字的值并没有变。
注意:无论是几进制,其数的大小不能超过该进制数的大小。例如二进制只能用0和1表示,逢2则进一,所以不存在比二大的数,其他进制类似。对于十六进制,从十开始到十六,分别用ABCDEF表示。
(1)R 进制转换成十进制
R进制转换成十进制,每一位数值用表示,几进制底数就为几,k从右向左开始数分别为0,1,2,3,4........(不含小数部分),若含小数,则从小数后面开始从左往右分别为-1,-2,-3......
例:二进制转换为十进制:10101
计算规则:每一位数值用表示,因为是二进制,所以此时的R=2,从右向左开始,k分别为0,1,2,3,4,所以最终的为1x
+0x
+1x
+0x
+1x
=16+4+1=21
例:七进制转换为十进制:302.01
原理同上:302.01=3x+0x
+2x
+0x
+1x
(2)十进制转R进制
一般使用最多的就是短除法
例:95转二进制:
95÷2=47......1 (47余1)
47÷2=23......1 (23余1)
23÷2=11.......1(11余1)
11÷2=5.......1 (5余1)
5÷2=2.......1 (2余1)
2÷2=1.......0 (余0)
最后整除完剩一个1,要给他补全,从下到上取余数 1011111,所以最终结果就是1011111
反过来验证:=64+16+8+4+2+1=95
除了短除法,还可以用减法来计算,规则就是用给的数每次减去离该数最近的二的倍数。
离95最近的2的倍数是=64
则95-=31
31-=15
15-=7
7-=3
3-=1
1-=0
根据式子可以看出2的指数分别为6,4,3,2,1,0有值,所以位数有的就用1代替,没有的就用0代替
则最终结果就是1011111,与短除法结果相同
(2.1)小数转二进制
例子:十进制176.0625转换为二进制
首先将整数部分176通过短除法得到二进制10110000.
再将小数部分0.0625进行二进制求解,小数求二进制与整数部分不同,整数是通过短除法,小数恰好相反,进行乘法,知道整数位有值为止
0.0625x2=0.1250 0
0.1250x2=0.2500 0
0.2500x2=0.5000 0
0.5000x2=1.0000 1
所以小数部分的二进制为0001(从上到下排)
所以整个的二进制就是10110000.0001
(3)二进制转R进制
例:二进制转八进制(三位一组)
10001110 = 10,001,110=010,001,110(不足三位的用0补齐)=216
同理,大家可以去计算一下转16进制的结果