一、bin()、oct()、int()、hex()
- int():转换为10进制;语法:Int(字符串,字符串进制) 。例: int("f",16) 输出为15;int('11',2)输出为3
即以下三个函数都是把10进制数转换成目标进制。
- bin():转换为2进制;例:bin( int("f",16) )输出:'0b1111' .bin(15)同样输出'0b1111'。
- oct():转换为8进制;
- hex():转换为16进制。
bin()、oct()、hex()的返回值均为字符串,分别带有0b、0o、0x前缀,后续处理时需注意。
以下的x必须为“字符串”,需用引号。
2->8:oct(int(x, 2))
8->2:bin(int(x, 8))
2->16:hex(int(x, 2))
16->2:bin(int(x, 16))
其他用法一样,就不举例了。
二、format用法
b,o,d,x 分别表示 二进制、八进制、十进制、十六进制。
输出均为字符串类型,无前导
print(format(482,"x")) # 十进制转十六进制
print(format(15,"o")) # 十进制转八进制
print(format(15,"b")) # 十进制转二进制
x=format(482,"x")
print(x)
print(type(x))
运行结果:
1e2
17
1111
1e2
<class 'str'>
十六进制转二进制、八进制、十进制:
print('{:b}'.format(0xef)) #十六进制转二进制:11101111
print('{:o}'.format(0xef)) #十六进制转八进制:357
print('{:d}'.format(0xef)) #十六进制转十进制:239
#格式化中加'#'表示加入标识
print('{:#b}'.format(0xef)) #十六进制转二进制:0b11101111,加标识 0b
print('{:#o}'.format(0xef)) #十六进制转八进制:0o357,加标识 0o
print('{:#d}'.format(0xef)) #十六进制转十进制:239,十进制不变
八进制、十进制转二进制:
print('{:b}'.format(0o357)) #八进制转二进制:11101111
print('{:b}'.format(239)) #十进制转二进制:11101111
print('{:#b}'.format(0o357)) #八进制转二进制:0b11101111,加标识 0b
print('{:#b}'.format(239)) #十进制转二进制:0b11101111,加标识 0b
十进制、八进制、二进制转十六进制:
print('{:x}'.format(239)) #十进制转十六进制:ef
print('{:x}'.format(0b11101111)) #二进制转十六进制:ef
print('{:x}'.format(0o357)) #八进制转十六进制:ef
#
print('{:#x}'.format(239)) #十进制转十六进制:0xef,加标识 0x
print('{:#x}'.format(0b11101111)) #二进制转十六进制:0xef,加标识 0x
print('{:#x}'.format(0o357)) #八进制转十六进制:0xef,加标识 0x
八进制以 '0o开头',二进制以 '0b' 开头,十六进制以 '0x' 开头。