python二八十六进制整数转换

电子说

1.3w人已加入

描述

python的整数数字可以用二、八、十六不同进制表示,它们可以和十进制相互转换。python的数字可以进行位操作。

1.1 python二八十六进制整数

python整数默认用十进制表示,也可以用二进制、八进制、十六进制表示整数。

python二进制(binary)整数以0b或0B开头。

python八进制(Octal)整数以0o或0O开头。

python十六进制(Hex)整数以0x或0X开头。

1.1.1 不同进制内置函数

python不同进制整数的内置函数分为两类。

一类将十进制整数转换为不同进制。

一类将不同进制整数转换为十进制。

序号 内置函数 描述
1 bin() 将十进制整数转为二进制
2 oct() 将十进制整数转为八进制
3 hex() 将十进制整数转为十六进制
4 int(str,base) 将不同进制整数字符串转为十进制

示例

>>> bin(95),oct(95),hex(95)
('0b1011111', '0o137', '0x5f')
>>> int('95'),int('0b1011111',2),int('0o137',8),int('0x5f',16)
(95, 95, 95, 95)

1.1.2 eval()转十进制整数

python的eval()函数可以将字符串作为代码执行。速度慢,且存在安全问题。

可以通过eval()达到int()函数的效果,将不同进制整数字符串转为十进制。

示例

>>> eval('95'),eval('0b1011111'),eval('0o137'),eval('0x5f')
(95, 95, 95, 95)

1.1.3 %和format()转不同进制整数

python的字符串格式化表达式%和格式化方法format也可以将十进制整数转为不同进制。

示例

>>> '%o,%x' % (95,95)
'137,5f'
>>> '{0:b},{1:o},{2:x}'.format(95,95,95)
'1011111,137,5f'

1.2 python数字位操作

python数字把整数当做二进制进行位操作,比如左移、右移、或、与等。

python二进制位操作
序号 位操作 描述
1 x<>n 右移n位,表示缩小2的n次方方倍
3 x n
4 x&n 位与,全1位1,否则为0

注意 :相同整数进行与、或,结果不变,为原值。

示例

>>> x = 2
>>> x << 3
16
>>> y = 16
>>> y >> 3
2
>>> x | 2
2
>>> x | 1
3
>>> x & 2
2
>>> x & 1
0
>>> x = 2
>>> bin(x)
'0b10'
>>> bin(x << 3)
'0b10000'
>>> int('0b10000',2)
16
>>> bin(x)
'0b10'
>>> bin(1)
'0b1'
>>> bin(x|1)
'0b11'
>>> int('0b11',2)
3

更多内容参考python学习笔记或软件测试开发目录。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分