说明
关于进制转换,我们常用到的有 二进制,八进制,十进制,十六进制。
而用到的内置函数有什么呢?
- 二进制:bin()-- 八进制:oct()-- 十进制:int()-- 十六进制:hex()
1、十进制转其他进制
十进制转二进制
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'
2、其他进制转十进制
class int(object)| int([x]) -> integer| int(x, base=10) -> integer|| Convert a number or string to an integer, orreturn 0if 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 orif base is given,then x must be a string,| bytes, or bytearray instance representing an integer literalin 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
3、二进制,八进制,十六进制之间的转换
· 借助十进制
print(bin(int('0xff',16)))# 输出0b11111111
· 函数直接住转换
print(bin(0xa))# 输出0b1010print(oct(0xa))# 输出0o12print(hex(0b1010))#输出0xa