Python3進制轉換

進制轉換其實是一個非常基礎簡單的知識,但是也會很讓人困擾,這裏記錄一下

這裏先明確一下各個進制

進制

十進制:就是最常見的數值類型,1,2,3,...,99,...
八進制:0o173,數字0加字母o(october)開頭,或者直接以o開頭
二進制:0b1111011,數字0加字母b(binary)開頭,或者直接以b開頭
十六進制:0x7b,數字0加字母x(hex)開頭,或者直接以x開頭
在進制轉換中,一般三位二進制對應一位八進制,四位二進制對應一位十六進制

轉換

在交互性的解釋器中

#這裏用了ipython,python3的版本,以十進制的123舉例
In [1]: num_base10 = 123

In [2]: num_base16 = hex(123)

In [3]: num_base8 = oct(123)

In [4]: num_base2 = bin(123)

In [5]: num_base2,num_base8,num_base10,num_base16
Out[5]: ('0b1111011', '0o173', 123, '0x7b')

可以很明顯的看到各個進制的特點,也就是我們之前標題:進制中寫的內容,具體的bin(),oct(),int(),hex()是轉換方式,這樣可以在交互性的解釋器中使用,但是不太適合正常編程

在IDE使用

num_base10 = 123
num_base16 = hex(num_base10)
num_base8 = oct(num_base10)
num_base2 = bin(num_base10)
print("各個進制的值爲:")
print(num_base10,num_base16,num_base8,num_base2)
print("將二、八、十六轉換爲十進制:")
re1_num_base10 = int(num_base2,2)
re2_num_base10 = int(num_base8,8)
re3_num_base10 = int(num_base16,16)
print(re1_num_base10,re2_num_base10,re3_num_base10)
print("將各個值轉換爲八進制:")
re4_num_base8 = oct(int(num_base16,16))
re5_num_base8 = oct(num_base10)
re6_num_base8 = oct(int(num_base2,2))
print(re4_num_base8,re5_num_base8,re6_num_base8)
print("將各個進制轉化爲十六進制")
re7_num_base16 = hex(int(num_base2,2))
re8_num_base16 = hex(int(num_base8,8))
re9_num_base16 = hex(int(num_base10))
print(re7_num_base16,re8_num_base16,re9_num_base16)
print("還有一種方式:")
re10_num_base16 = hex(int(num_base2,base=2))
re11_num_base16 = hex(int(num_base8,base=8))
re12_num_base16 = hex(int(num_base10))
print(re10_num_base16,re11_num_base16,re12_num_base16)
print("這裏推薦最後一個方法")

得到的結果如下:

各個進制的值爲:
123 0x7b 0o173 0b1111011
將二、八、十六轉換爲十進制:
123 123 123
將各個值轉換爲八進制:
0o173 0o173 0o173
將各個進制轉化爲十六進制
0x7b 0x7b 0x7b
還有一種方式:
0x7b 0x7b 0x7b
這裏推薦最後一個方法

 

發佈了83 篇原創文章 · 獲贊 42 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章