二进制、八进制、十进制、十六进制之间的相互转换
二进制、八进制、十进制、十六进制之间的相互转换。
代码:
# -*- coding: UTF-8 -*-# 主要的思想,就是,先把数字转成10进制,利用10进制中的自带函数去解决# 十进制数字num = 10# 十进制的分别转换成2/8/16进制print("二进制", bin(num), type(bin(num)))print("八进制", oct(num), type(oct(num)))print("十六进制", hex(num), type(hex(num)))print("2#####################################################")# 2进制数字twonum = bin(num)# 2进制的分别转换成10/8/16进制print("十进制", int(twonum, 2), type(int(twonum, 2))) # 其他的转换都以这个为主print("八进制", oct(int(twonum, 2)), type(oct(int(twonum, 2))))print("十六进制", hex(int(twonum, 2)), type(hex(int(twonum, 2))))print("8#####################################################")# 8进制数字eightnum = oct(num)# 8进制的分别转换成2/10/16进制print("十进制", int(eightnum, 8), type(int(eightnum, 8))) # 其他的转换都以这个为主print("二进制", bin(int(eightnum, 8)), type(bin(int(eightnum, 8))))print("十六进制", hex(int(eightnum, 8)), type(hex(int(eightnum, 8))))print("16#####################################################")# 16进制数字sixteennum = hex(num)# 16进制的分别转换成2/8/10进制print("十进制", int(sixteennum, 16), type(int(sixteennum, 16))) # 其他的转换都以这个为主print("二进制", bin(int(sixteennum, 16)), type(bin(int(sixteennum, 16))))print("八进制", oct(int(sixteennum, 16)), type(oct(int(sixteennum, 16))))
运行结果:
二进制 0b1010 <class 'str'>八进制 0o12 <class 'str'>十六进制 0xa <class 'str'>2#####################################################十进制 10 <class 'int'>八进制 0o12 <class 'str'>十六进制 0xa <class 'str'>8#####################################################十进制 10 <class 'int'>二进制 0b1010 <class 'str'>十六进制 0xa <class 'str'>16#####################################################十进制 10 <class 'int'>二进制 0b1010 <class 'str'>八进制 0o12 <class 'str'>[Finished in 0.5s]
注意一下其中的数据类型,只有十进制的数字是int类型。
如果单独输入其他某个进制的,其为int类型,只要转成str就行了。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。