一、二进制、八进制、十六进制转为十进制
对于一个N进制的数,整数部分从右往左第i位的位权为Ni-1,对于小数部分则要从左往右看,第j位的权值位N-j。
例如将八进制12.36转换为十进制:
12.36=1*81+2*80+3*8-1+6*8-2=10.46875(十进制)
二、将十进制转换为二进制、八进制、十六进制
十进制转N进制时,小数部分和整数部分的操作方式不同:
1.整数部分采用"除N取余,逆序排列"的方法
下图展示如何将十进制42转换为二进制数:
2.小数部分采用"乘N取整,顺序排列"的方法
下图展示如何将十进制小数0.6875转化为二进制小数的过程:
注意,十进制小数转换成其他进制小数时,结果有可能是一个无限位的小数:
三、二进制、八进制、十六进制之间的转换
这三种进制之间的转换可以采用更简单的方式
1.二进制和八进制之间的转换
一位八进制数可以使用三位的二进制数来表示,例如八进制的12,换算为二进制应该是001 002。
对于二进制转换为八进制也是同样的方法,每三位二进制数变为一位八进制数,高位不足就补0,例如二进制1011011,先化为001 011 011,对应的八进制位133。
2.二进制和十六进制之间的转换(和八进制类似)
一位十六进制数可以使用四位的二进制数来表示,例如十六进制的3C,换算为二进制应该是0011 1100。
对于二进制转换为十六进制每四位二进制数变为一位十六进制数,高位不足就补0,例如二进制1110110111,先化为0011 1011 0111,对应的十六进制数位3B8。
3.八进制和十六进制之间的转换可以使用二进制作为中间件进行转换
原文:https://www.cnblogs.com/raisins/p/12912280.html