Python各进制间的转换
表示各进制的符号:
b:二进制,o:八进制,d:十进制,x:十六进制
bin()、oct()、hex()返回值均为字符串,且分别带有0b、0o、0x前缀。
1、十进制转二进制
>>> bin(10)
"0b1010"
>>> "{0:b}".format(10)
"1010"
这两种方法返回的都是二进制的字符串表示。
对十进制数直接转二进制
list1 = []
if num <= 1 and num >= 0:
print "二进制:%d" %(num)
else :
while num > 1 :
list1.append(str(num % 2))
num /= 2
list1.append(str(num))
list1.reverse()
2、十进制转八进制
>>> oct(12)
"014"
>>> "{0:o}".format(12)
"14"
3、十进制转十六进制
>>> hex(12)
"0xc"
>>> "{0:x}".format(12)
"c"
4、二进制转十进制
>>> int("1010",2)
10
>>> eval("0b10")
2
int(string_num, n):
string_num:进制的字符串表示
n:表示string_num是多少进制的数
5、八进制转十进制
>>> int("014",8)
12
>>> "{0:d}".format(014)
"12"
>>> eval("0o10")
8
6、十六进制转十进制
>>> "{0:d}".format(0xc)
"12"
>>> int("0xc",16)
12
>>> eval("0x10")
16
注意:
hex函数比格式化字符串函数format慢,不推荐使用。
eval函数比int函数慢,不推荐使用。
二进制、十六进制、八进制之间的转换,可以借助十进制这个中间值,即先转十进制再转其他进制,也可以直接使用函数进行转换。如:
十六进制转二进制:
#借助十进制
>>> bin(int("fc",16))
"0b11111100"
#利用函数直接转
>>> bin(0xa)
"0b1010"
>>> oct(0xa)
"012"
>>> hex(10)
"0xa"
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: Python 多进程 fork()详解
- 下一篇: Python实现二分查找算法