3. Python内部进制转换原理

二进制转十进制

按权展开相加: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)~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值