由于计算机中都是以二进制形式来存储数据的, 那么进制间是如何相互转换的呢? 进
制的转换可以归为以下三类
1. 各种进制转为十进制
其他进制数转换为十进制数的方法为: 从右到左为这个数从 0 开始一位一位地标号
各个位上面的数乘以此进制数的标号次幂再求和, 也就是 "位权表示法". 例如
- (123.12)10=1*102+2*104+3*109+1*10-4+2*102
- (10110)2=1x2+0*2+1*2+1*24+0*2
- (123.12)8=1*8^2 +2*8^1 +3*8^0+ 1*8^-1 +2*8^-2
- (12A.C)6=1*162+2*164+10*16+12*16
image.PNG
2. 十进制转为各种进制
十进制数转为其他进制数的方法是: 除以此进制数取余倒排序. 以十进制转二进制
例, 其方法为: 整数部分除以 2 反序取余数, 小数部分乘以 2 顺序取整数. 十进制转为其
他进制的方法以此类推, 例如, 除以 8 反序取余法, 乘以 8 顺序取整法, 除以 16 反序取
法, 乘以 16 顺序取整法. 例如 (13.3125)0=(10.0101)2, 其示意如图 3.3 所示
取余数
- 3125X2=0.625
- 0.625*2=L
图 33(13.3125)0=(1101.0101)2 的转换方法
image.PNG
结果为: 1101
3. 其他进制之间的转换
二进制转八进制, 八进制转二进制, 二进制转十六进制, 十六进制转 一般采用 "分段法" 来完成转换. 下面以二进制和八进制之间的互转为例进行统介绍
二进制转成八进制: 以小数点为界, 将二进制数整数部分从低位开始, 小数部分从高
位开始, 每 3 位一组, 头尾不足 3 位的补 0, 然后将各组的 3 位二进制数分别转换为相应的
八进制数, 顺序排列, 例如
image.PNG
八进制转成二进制: 将八进制数的每一位分别转换为 3 位二进制数并顺序排列. 例如
image.PNG
二进制和十六进制互转与二进制和八进制互转的不同之处就是 " 每四位构成一组
来源: http://www.jianshu.com/p/4432a685fad0