赞
踩
关于进制转换,我们常用到的有 二进制,八进制,十进制,十六进制。
而用到的内置函数有什么呢?
- 二进制:bin()
-
- 八进制:oct()
-
- 十进制:int()
-
- 十六进制:hex()
bin() 返回一个整数 int 或者长整数 long int 的二进制表示。输入参数为一个int或者long int
>>> bin(4)
'0b100'
>>> bin(10)
'0b1010'
>>> print(type(bin(4)))
<class 'str'>
返回的是字符串,自动带上'Ob'
oct() 函数将一个整数转换成 8 进制字符串。
>>> oct(8)
'0o10'
>>> oct(16)
'0o20'
hex() 函数用于将10进制整数转换成16进制
>>> hex(23)
'0x17'
>>> hex(15)
'0xf'
class int(object)
| int([x]) -> integer
| int(x, base=10) -> integer
|
| Convert a number or string to an integer, or return 0 if no arguments
| are given. If x is a number, return x.__int__(). For floating point
| numbers, this truncates towards zero.
|
| If x is not a number or if base is given, then x must be a string,
| bytes, or bytearray instance representing an integer literal in the
| given base. The literal can be preceded by '+' or '-' and be surrounded
| by whitespace. The base defaults to 10. Valid bases are 0 and 2-36.
| Base 0 means to interpret the base from the string as an integer literal.
| >>> int('0b100', base=0)
| 4
一般情况,int()会有以下用法
int([x]) -> integer
>>> int()
0
>>> int(3.5)
3
>>> int('20')
20
int(x, base=10) -> integer
如果在给出base的情况下,X的输入一定是字符串
默认情况下,base为10
如果给出base = 0 的情况,如果输入不带进制标记,就直接转换字符串的内容
>>> int('100',0)
100 # 如果输入不带进制标记,就直接转换字符串的内容 与int('100')一样
>>> int('0o100',0)
64 # 0o表示8进制
除此之外,还有一个函数eval() ,用来执行一个字符串表达式,并返回表达式的值。
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('0b100')
4
>>> int('0b100',0)
4
>>> int('100',2)
4
>>> eval('0b100')
4
与二进制转十进制同理,八进制标记为0o
与二进制转十进制同理,十六进制为0x
· 借助十进制
print(bin(int('0xff', 16))) # 输出0b11111111
· 函数直接住转换
print(bin(0xa)) # 输出0b1010
print(oct(0xa)) # 输出0o12
print(hex(0b1010)) #输出0xa
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。