二進制、八進制、十進制、十六進制之間的相互轉換
阿新 • • 發佈:2018-07-27
函數 pri 數據 數據類型 相互轉換 轉換 結果 之間 int 二進制、八進制、十進制、十六進制之間的相互轉換。
代碼:
# -*- 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就行了。
二進制、八進制、十進制、十六進制之間的相互轉換