十進制與二進制等互轉原理


百度百科:https://baike.baidu.com/item/%E5%8D%81%E8%BF%9B%E5%88%B6%E8%BD%AC%E4%BA%8C%E8%BF%9B%E5%88%B6/393189?fr=aladdin

重要聲明,整數和小數點要分開處理!!!

二進制轉十進制

整數位從右到左,根據數字所在的“位權 ”來計算,0,1,2,3。。。

小數位從左到右,根據數字所在的“位權 ”來計算,-1,-2.。。。。

總結起來通用公式為:abcd.efg(2進制) = d*2^0+c*2^1+b*2^2+a*2^3  +  e*2^-1+f*2^-2+g*2^-3

 

十進制轉二進制

十進制整數轉換為二進制整數采用"除2取余,逆序排列"法,直到商為小於1時為止,然后把先得到的余數作為二進制數的低位有效位,后得到的余數作為二進制數的高位有效位,依次排列起來。

推論過程:

A(10進制)=a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4)

假設該數未轉化為二進制,除以基數2得
A/2(10進制)=a(2^0)/2+b(2^1)/2+c(2^2)/2+d(2^3)/2+e(2^4)/2
注意:a除不開二,余下了!其他的絕對能除開,因為他們都包含2,而a乘的是1,他本身絕對不包含因數2,只能余下,
商得:
b(2^0)+c(2^1)+d(2^2)+e(2^3),再除以基數2余下了b,以此類推。當這個數不能再被2除時,先余掉的a位數在原數低,而后來的余數數位高,所以要把所有的余數反過來寫。正好是edcba
 
 
十進制小數轉換成二進制小數采用"乘2取整,順序排列"法,具體做法是:用2乘十進制小數,可以得到積,將積的整數部分取出,再用2乘余下的小數部分,又得到一個積,再將積的整數部分取出,如此進行,直到積中的小數部分為零,此時0或1為二進制的最后一位。或者達到所要求的精度為止。。。把取出的整數部分按順序排列起來,先取的整數作為二進制小數的高位有效位,后取的整數作為低位有效位
 
推論過程:
假設一十進制小數B化為了二進制小數0.ab的形式,同樣按權展開,得
B=a(2^-1)+b(2^-2)
因為小數部分的位權是負次冪,所以我們只能乘2,得
2B=a+b(2^-1)
注意a變成了整數部分,我們取整數正好是取到了a,剩下的小數部分也如此,值得一提的是,小數部分的按權展開的數位順數正好和整數部分相反,所以不必反向取余數了
 

 


免責聲明!

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



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