【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函數本身也可以當做一個強制類型轉換的函數。