二进制转十进制
按权展开相加:1101
1*2^(4-1)+1*2^(3-1)+0*2^(2-1)+1*2^(1-1)=13
即各个位拆开,乘以2的(位数-1)次方
八进制转十进制
按权展开相加:226
2*8**2+2*8**1+6*8**0=150
即各个位拆开,乘以8的(位数-1)次方
十六进制转十进制
9*16**1+6*16**0=150
即各个位拆开,乘以16的(位数-1)次方
十进制转二进制 / 八进制 / 十六进制
除以2,得到的商再除以2直到除到1商0,然后顺取余数(从下往上)
除以8,得到的商再除以8直到除到1商0,然后顺取余数
除以16,得到的商再除以16直到除到1商0,然后顺取余数
八进制/十六进制转二进制
比如八进制(37)8
拆开3 7
3用二进制表示为11
7用二进制表示为111
合起来即为11 111
十六进制同理
二进制转八进制/十六进制
二进制从右边数,3位为一组,转为十进制:
10 110 011 111
2 6 3 7
对应的八进制为:2637
十六进制从右边数,4位为一组,转为十进制:
八进制与十六进制互转
1)先转换成二进制在互转
2)先转换成十进制在互转
Python函数实现进制转换
以十进制13为例
~ | 2进制 | 8进制 | 10进制 | 16进制 |
---|---|---|---|---|
2进制 | ~ | oct(int(‘0b1101’, 2)) | int(‘0b1101’, 2) | hex(int(‘0b1101’, 2)) |
8进制 | bin(int(‘0o15’, 8)) | ~ | int(‘0o15’, 8) | hex(int(‘0o15’, 8) |
10进制 | bin(13) | oct(13) | ~ | hex(13) |
16进制 | bin(int(‘0xd’, 16)) | oct(int(‘0xd’, 16)) | int(‘0xd’, 16) | ~ |