【Python秘籍】十進位整數與二進位數的轉換

  • 2019 年 10 月 24 日
  • 筆記

最近在用Python寫遺傳演算法時,發現需要將十進位的整數轉換成二進位數,那麼怎麼來轉換呢?當然如果你學過進位轉換的有關計算方法,你可以手動編寫一些函數來實現,不過總體來說還是比較麻煩的,這裡介紹Python內置的兩個函數bin()和int(),利用這兩個函數可以輕輕鬆鬆完成轉換。

一、十進位整數轉換成二進位數

程式碼如下:

 

num = 8  numb = bin(num)  print(numb)

 

這段程式碼的輸出結果如下:

0b1000

0b是什麼呢?有過一定電腦專業基礎的人一定知道,其實他只是表示二進位數的前綴,也就是說加個0b在前面表示這個數不是一千,而是二進位的一零零零.

二、二進位數轉換成十進位整數

程式碼如下:

 

numb = 0b1101  num = int(numb)  print(num)

這段程式碼輸出的結果如下:

13

也就是說我們通過一個簡單的int函數將0b1101轉換成了十進位的13。這裡要強調的是,我們在寫二進位數的時候,一定要加上0b這個前綴,否則它會把你轉換成的數當成十進位數,也就是輸出結果還是1101.

三、小貼士

還有一點需要大家注意的是,通過bin函數轉換成的二進位數的類型是一個字元類型,可以通過下標遍歷每個字元,但不能當做整型的數字來處理,所以大家在實際應用中,可能還需要將後幾位取出來進行int類型的強制轉換。而int轉換成的十進位數的類型就是int型的,因為int函數本身也可以當做一個強制類型轉換的函數。