电子说
python的整数数字可以用二、八、十六不同进制表示,它们可以和十进制相互转换。python的数字可以进行位操作。
python整数默认用十进制表示,也可以用二进制、八进制、十六进制表示整数。
python二进制(binary)整数以0b或0B开头。
python八进制(Octal)整数以0o或0O开头。
python十六进制(Hex)整数以0x或0X开头。
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)
python的eval()函数可以将字符串作为代码执行。速度慢,且存在安全问题。
可以通过eval()达到int()函数的效果,将不同进制整数字符串转为十进制。
示例
>>> eval('95'),eval('0b1011111'),eval('0o137'),eval('0x5f')
(95, 95, 95, 95)
python的字符串格式化表达式%和格式化方法format也可以将十进制整数转为不同进制。
示例
>>> '%o,%x' % (95,95)
'137,5f'
>>> '{0:b},{1:o},{2:x}'.format(95,95,95)
'1011111,137,5f'
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学习笔记或软件测试开发目录。
全部0条评论
快来发表一下你的评论吧 !