最近在用python寫遺傳演算法時,發現需要將十進位制的整數轉換成二進位制數,那麼怎麼來轉換呢?當然如果你學過進製轉換的有關計算方法,你可以手動編寫一些函式來實現,不過總體來說還是比較麻煩的,這裡介紹python內建的兩個函式bin()和int(),利用這兩個函式可以輕輕鬆鬆完成轉換。
**如下:
num = 8numb =bin(num)print(numb)
這段**的輸出結果如下:
0b1000
0b是什麼呢?有過一定計算機專業基礎的人一定知道,其實他只是表示二進位制數的字首,也就是說加個0b在前面表示這個數不是一千,而是二進位制的一零零零.
**如下:
numb =0b1101numb2 = '0b1101'
num =int(numb)
num1 = int(numb2 , 2)
print(num)
print(num1)
這段**輸出的結果如下:
1313
也就是說我們通過乙個簡單的int函式將0b1101轉換成了十進位制的13。這裡要強調的是,我們在寫二進位制數的時候,一定要加上0b這個字首,否則它會把你轉換成的數當成十進位制數,也就是輸出結果還是1101.還有一點要注意的就是,當你給出的二進位制數是字串型別的時候,在你使用int函式時要像上面**寫的那樣後面加上個引數2,否則會報錯。可以簡單地理解成告訴int函式你輸入的這個字串不是個字串那麼簡單,而是代表著二進位制。
還有一點需要大家注意的是,通過bin函式轉換成的二進位制數的型別是乙個字元型別,可以通過下標遍歷每個字元,但不能當做整型的數字來處理,所以大家在實際應用中,可能還需要將後幾位取出來進行int型別的強制轉換。而int轉換成的十進位制數的型別就是int型的,因為int函式本身也可以當做乙個強制型別轉換的函式。
十進位制整數轉化R進製整數
棧結構的邏輯結構為線性的,可建立鏈式結構使得入棧 出棧的操作是動態的,也可以很好地實現進製的轉換。而且進製轉換恰好和棧的輸入輸出輸出類似,故選擇棧是最好的。功能 該函式實現建立初始化的棧。具體過程 1.建立乙個棧結構體指標s 2.將s指標指向的s top賦予 1,即定義棧頂初始為空。功能 該函式實現...
十進位制整數與二進位制整數 十六進製制整數之間的轉換
十進位制整數 如85 要轉換成二進位制我們最原始的方法呢就是短除法,但是當這個十進位制數比較大時短除法就有些麻煩了。其實可以這樣來計算 如85 64 16 4 1 2 6 1 2 4 1 2 2 1 2 0 1,二進位制最低位從第0位開始 以8位二進位制為例 式子中2的冪次對應第幾位第幾位就寫上1,...
點分十進位制字串IP與十進位制整數相互轉換方法
點分十進位制字串ip與十進位制整數相互轉換方法 param args public static void main string args string ip str 255.255.255.255 string array ip str.split long ip long long.parse...