二進制、八進制、十進制、十六進制之間的相互轉換

二進制、八進制、十進制、十六進制之間的相互轉換。

代碼:

# -*- 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就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章