python中的二进制、八进制、十六进制的相互转换

1 二进制、八进制、十六进制 转到 十进制

使用int(str, n)即可完成二进制、八进制、十六进制十进制的转换:

  • str:是要转换的进制具体数,类型字符串
  • n:是要转换的进制,类型整型

1.1 二进制 转 十进制

  • int(str_b, 2)
>>> int('0101',2)
5
>>> 

b 0101 = 2 2 + 2 0 = 5 b0101=2^2+2^0=5 b0101=22+20=5

1.2 八进制 转 十进制

  • int(str_0, 8)
>>> int('24', 8)
20
>>> 

024 = 2 ∗ 8 1 + 4 ∗ 8 0 = 20 024 = 2*8^1+4*8^0=20 024=281+480=20

转成十进制:其实就是相当于8进制对应的十位,和8进制对应的个位,然后相加在一起

1.3 十六进制 转 十进制

  • int(str_x, 16)
>>> int('0xf2', 16)
242
>>> int('0Xf2', 16)
242
>>> 

0 x a 2 = 15 ∗ 1 6 1 + 2 ∗ 1 6 0 = 242 0xa2 = 15*16^1+2 *16^0=242 0xa2=15161+2160=242

注意:

上面的b、o、x大写和小写都是可以的!!!

1.4 pyton中的二进制、八进制、十六进制在命令行中显示也都是以十进制显示的

>>> bin_num = 0b0101
>>> bin_num
5
>>> ord_num = 0o24
>>> ord_num
20
>>> hex_num = 0xf3
>>> hex_num
243
>>> 

二进制、八进制、十六进制虽然写成各个进制的形式,但是本质上还是十进制的数:

>>> oct_num = 0o24
>>> oct_num
20
>>> res = oct_num * 3
>>> res
60
>>> type(oct_num)
<class 'int'>
>>> 

2 十进制 转到 二进制、八进制、十六进制

2.1 十进制 转 二进制

-bin(int):十进制 转 二进制,返回值是二进制形式的字符串

>>> bin_num = bin(17)
>>> bin_num
'0b10001'
>>> type(bin_num)
<class 'str'>
>>> 

2.2 十进制 转 八进制

  • oct(int):十进制 转 八进制,返回值是八进制形式的字符串
>>> oct_num = oct(17)
>>> oct_num
'0o21'
>>> type(oct_num)
<class 'str'>
>>> 

2.3 十进制 转 十六进制

  • hex(int):十进制 转 十六进制,返回值是十六进制形式的字符串
>>> hex_num = hex(17)
>>> hex_num
'0x11'
>>> type(hex_num)
<class 'str'>
>>> 

3 二进制、八进制、十六进制之间相互转换

二进制、八进制、十六进制之间相互转换,只需要在十进制作为过度一下即可!!!下面以二进制 转 十六进制为例,其他一样!

3.1 二进制 转 十六进制

1、先把二进制转为十进制

  • int(str_b, 2)
>>> int('0b01011', 2)
11
>>> 

2、再把十进制转为十六进制

  • hex(int)
>>> hex(11)
'0xb'
>>> 

3、合在一起写

  • hex(int(str_b, 2))
>>> hex(int('0b01011', 2))
'0xb'
>>> 

参考:https://blog.csdn.net/weixin_43353539/article/details/89444838
参考:https://blog.csdn.net/u012063703/article/details/42609833
参考:https://blog.csdn.net/hmh4640219/article/details/112506803

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值