二進制和十進制之間的互相轉換


十進制轉換為二進制

十進制轉二進制分為:整數轉二進制、小數轉二進制

整數轉二進制

  • 采用"除2取余,逆序排列"法:
  1.首先用2整除一個十進制整數,得到一個商和余數
  2.然后再用2去除得到的商,又會得到一個商和余數
  3.重復操作,一直到商為小於1時為止
  4.然后將得到的所有余數全部排列起來,再將它反過來(逆序排列),切記一定要反過來!
  • 假設我們現在需要將42轉為二進制,那我們怎么做呢,如下圖所示:

小數轉二進制

  • 采用"乘2取整,順序排列"法:
  1.用2乘十進制小數,可以得到積,將積的整數部分取出
  2.再用2乘余下的小數部分,又得到一個積,再將積的整數部分取出
  3.重復操作,直到積中的小數部分為零,此時0或1為二進制的最后一位,或者達到所要求的精度為止
  • 例如將0.125轉換為二進制:
   0.125 * 2 = 0.25 ------0    0.25 * 2 = 0.5 ------0    0.5  * 2 = 1.0 ------1    當小數部分為0就可以停止乘2了然后正序排序就構成了二進制的小數部分0.001
  • 如果小數的整數部分有大於0的整數時,將整數部分和小數部分先單獨轉為二進制,再合在一起就可以了,例如:
   假設要將8.125 轉換為二進制
   現將8轉為二進制:得到1000
   再將0.125轉為二進制:得到0.001
   合並后為1000.001

二進制轉換為十進制

二進制轉為十進制要從右到左用二進制的每個數去乘以2的相應次方,小數點后則是從左往右。

如果首位是0就表示正整數,如果首位是1則表示負整數,正整數可以直接換算,負整數則需要先取反再換算。

因為計算機內部表示數的字節單位是定長的。如8位、16位、32位。所以位數不夠時,高位補零。

  • 如要想二進制00101010轉為十進制,因為以0開頭,所以這是正整數,計算如下所示:
(0 * 2 ^ 0) + (1 * 2 ^ 1) + (0 * 2 ^ 2) + (1 * 2 ^ 3) + (0 * 2 ^ 4) + (1* 2 ^ 5) + (0 * 2 ^ 6) + (0 * 2 ^ 7) = 0 + 2 + 0 + 8 + 0 + 32 + 0 + 0 = 42

  

  • 如果11101011想轉為*負的十進制,因為最高位是1,所以先減一取反得到 00010101,然后計算出00010101對應的十進制為21,所以11101011最終對應的十進制為 -21。


免責聲明!

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



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