python 二進制與十進制之間的轉換

1、十進制 與 二進制之間的轉換
    (1)、十進制轉換爲二進制,分爲整數部分和小數部分

 

整數部分

複製代碼

 

方法:除2取餘法,即每次將整數部分除以2,餘數爲該位權上的數,而商繼續除以2,餘數又爲上一個位權上的數。
這個步驟一直持續下去,直到商爲0爲止,最後讀數時候,從最後一個餘數讀起,一直到最前面的一個餘數。下面舉例:

例:將十進制的168轉換爲二進制
得出結果 將十進制的168轉換爲二進制,(10101000)2
168 / 2 = 84 -- 0
84 / 2 = 42 -- 0
42 / 2 = 21 -- 0
21 / 2 = 10 -- 1
10 / 2 = 5 -- 0
 5 / 2 = 2 -- 1
2 / 2 = 1 -- 0
1 / 2 = 0 -- 1
二進制(從後往前讀): 10101000

 

複製代碼

小數部分

方法:乘2取整法,即將小數部分乘以2,然後取整數部分,剩下的小數部分繼續乘以2,然後取整數部分,
剩下的小數部分又乘以2,一直取到小數部分爲零爲止。如果永遠不能爲零,就同十進制數的四捨五入一樣,
按照要求保留多少位小數時,就根據後面一位是0還是1,取捨,如果是零,舍掉,如果是1,向入一位。
換句話說就是0舍1入。讀數要從前面的整數讀到後面的整數

二進制轉換爲十進制 (不分整數和小數部分)

方法:按權相加法,即將二進制每位上的數乘以權,然後相加之和即是十進制數。

複製代碼

 

例:將二進制數101.101轉換爲十進制數。 
得出結果:(101.101)2=(5.625)10 
在做二進制轉換成十進制需要注意的是 
1)要知道二進制每位的權值 
2)要能求出每位的值 101.101 轉換爲十進制 
整數部分:2^2 + 2^0 = 5 
小數部分:2^(-1) + 2^(-3) = 1/2 + 1/8 = 0.5 + 0.125 = 0.625 
十進制: 2^2 + 2^0 + 2^(-1) + 2^(-3) = 5.625

 

本文首發於python黑洞網,csdn同步更新
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章