二進制與十進制的轉換


轉自:https://www.sojson.com/hexconvert.html

1.整數部分 十進制=>二進制

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

:將十進制的168轉換為二進制

得出結果 將十進制的168轉換為二進制,(10101000)

分析:

  • 第一步,將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。

  • 第九步,讀數,因為最后一位是經過多次除以2才得到的,因此它是最高位,讀數字從最后的余數向前讀,即10101000

 2.小數部分

乘2取整法,即將小數部分乘以2,然后取整數部分,剩下的小數部分繼續乘以2,然后取整數部分,剩下的小數部分又乘以2,一直取到小數部分為零為止

如果永遠不能為零,就同十進制數的四舍五入一樣,按照要求保留多少位小數時,就根據后面一位是0還是1,取舍,如果是零,舍掉,如果是1,向入一位。換句話說就是0舍1入。

2:將0.45轉換為二進制(保留到小數點第四位)

大家從上面步驟可以看出,當第五次做乘法時候,得到的結果是0.4,那么小數部分繼續乘以2,得0.8,0.8又乘以2的,到1.6這樣一直乘下去,最后不可能得到小數部分為零,因此,這個時候只好學習十進制的方法進行四舍五入了,但是二進制只有0和1兩個,於是就出現0舍1入。這個也是計算機在轉換中會產生誤差,但是由於保留位數很多,精度很高,所以可以忽略不計。

那么,我們可以得出結果將0.45轉換為二進制約等於0.0111

上面介紹的方法是十進制轉換為為二進制的方法,需要大家注意的是:

  • 十進制轉換為二進制,需要分成整數和小數兩個部分分別轉換。

  • 當轉換整數時,用的除2取余法,而轉換小數時候,用的是乘2取整法。

  • 注意他們的讀數方向。

因此,我們從上面的方法,我們可以得出十進制數168.125轉換為二進制為10101000.001,或者十進制數轉換為二進制數約等於10101000.0111。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM