首先大家要知道什么是进制
二进制:逢2进1,二进制2个数为0,1
八进制:逢8进1,八进制8个数位0,1,2,3,4,5,6,7 八进制数以数字0开头,在PYTHON语言中,0o是用来表示一个八进制常数
十进制:逢10进1,十进制10个数为0,1,2,3,4,5,6,7,8,9
十六进制:逢16进1,十六进制16个数为0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。十六进制中出现的A,B,C,D,E,F 等价于 10,11,12,13,14,15。实际计算中需要进行转换。
十六进制数以数字0和字母x的组合0x或0X开头。其中字母x是不区分大小写的,即0x与0X等价
二进制转十进制
例子 二进制110转化十进制
我们从后往前算,0是第一位,1是第二位,1是三位
- 第0位 0 x 2^0 = 0;
- 第1位 1 x 2^1 = 2;
- 第2位 1 x 2^2 = 4;
- 读数,把结果值相加,0+2+4=6,即二进制的 110 转换为十进制等于 6
十进制转二进制
除2取余法。十进制数字无限的除以2,直至商等于0。每一次除2得到的商作为新的被除数继续除2,记录下余数。
当商为0时开始读数,从最后一个记录的余数开始读,一直读到最前面的一个余数
例如 6
6➗2=3余0
3➗2=1余1
1➗2=0余1
把上述计算的余数从后向前排列 110
既十进制的 6 转换为二进制的等于 110
十进制转十六进制
除16取余法。十进制数字无限的除以16,直至商等于0。每一次除16得到的商作为新的被除数继续除16,记录下余数
当商为0时开始读数,从最后一个记录的余数开始读,一直读到最前面的一个余数
例如
将十进制的 1963 转换为十六进制的步骤如下: - 被除数 1963 除以16,商122余数为11,余数 11 对应十六进制的 B;
- 被除数 122 除以16,商7余数为10,余数 10 对应十六进制的 A;
- 被除数 7 除以16,商0余数为 7;
- 读数。最后一个记录的余数开始读,故读数结果为:7AB;
- 既十进制 1963 转 十六进制等于 7AB;
十六进制转十进制
将十六进制的 7AB 转换为十进制的,注意这里的A,B需要转换为10,11进行计算。步骤如下:
同样我们从后往前看,B是第0位,A是第1位,7是第三位 - 第0位 B x 16^0 = 11 x 1 = 11;
- 第1位 A x 16^1 = 10 x 16 = 160;
- 第2位7 x 16^2 = 7 x 256 = 1792;
- 读数,把结果值相加,11+160+1792=1963;
- 即十六进制的 7AB 转换为十进制的等于1963;
八进制转十进制
例如:例如八进制数1507转换为十进制
同样我们从后往前
1.第0位7 x8^0=7
2.第二位0 x8^1=0
3.第三位5 x8^2=320
4.第四位1 x8^3=839=512
5.读数,把结果值相加,7+0+320+512=839;
839
104 7
13 0
1 5
0 1
十进制转八进制
①整数部分
方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。
②小数部分
方法:乘8取整法,即将小数部分乘以8,然后取整数部分,剩下的小数部分继续乘以8,然后取整数部分,剩下的小数部分又乘以
8,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,暂取个名字叫3舍4入。
例:将十进制数796.703125转换为八进制数
先计算整数部分
796
796➗8商99余4
99➗8商12余3
12➗8商1余4
1➗8商0余1
我们把每次计算的余数从后往前排
所以整数部分位1434
再计算小数部分
0.703125✖️8=5.625
取整数位5
剩下的小数部分位0.625
0.625✖️8=5
这时候小数位没了
所以计算后的小数位是0.55
因此,得到结果十进制796.703125转换八进制为1434.55