10進制與2進制的轉換


10進制與2進制轉換還真是個麻煩事,由於生活中,我們都是用10進制的,所以,當我們生活中遇到2進制的數字時,總是需要轉換成10進制來處理,而電腦開發者,還經常要在兩種進制里互換!

以前,將10進制與2進制互換,我總是以2N次方來轉,如下:

18  轉 2進制 n次方方法

18 = 16 + 2

18 = 24 + 03 + 02 + 21 + 00

18 = 10010

此方法的要求:

第一步:加數一定要是2的N次方,

第二步:N次方要從大到小寫下來(見43210),某一位的N次方沒有在上一步加數里則以0代替(見03+02

第三步:將乘方底數不為0的寫為1,為0的照寫下來就是2進制了!

總結:這種方法遇到大的數就麻煩了,因為要心數2N次方

 

后來,不經意中看到了另外一個轉換的方法!就是除2取余后,反取余數就可!如下:

18  轉 2進制 取余方法

(1) 18 / 2 = 9 …… 0     

(2) 9 / 2 = 4 …… 1

(3) 4 / 2 = 2 …… 0

(4) 2 / 2 = 1 …… 0

(5) 1 / 2 = 0 ……  1

反取余數就是:10010,所以:18=10010

總結:此方法比較好,再大的數,除以2都很容易算!

反推:既然用取余法將10進制轉換2進制那么方便!那么是否可以依據取余法來推算出2進制轉10進制?

依上面的運算來反推算:

(1) 18 / 2 = 9 … 0  》》》 9 X 2 + 0 = 18

(2) 9 / 2 = 4 …… 1  》》》 4 X 2 + 1 = 9

(3) 4 / 2 = 2 …… 0  》》》 2 X 2 + 0 = 4

(4) 2 / 2 = 1 …… 0  》》》 1 X 2 + 0 = 2

(5) 1 / 2 = 0 ……  1 》》》 0 X 2 + 1 = 1

運算順序如下:

(1)0 X 2 + 1 = 1

(2)1 X 2 + 0 = 2

(3)2 X 2 + 0 = 4

(4)4 X 2 + 1 = 9

(5)9 X 2 + 0 = 18

以上運算的特點:

第二個加數,剛好按二進制的高位至低位依次排下來

(1)0 X 2 + 1 = 1(加數1是二進制的最高位)

(2)1 X 2 + 0 = 2(加數0是二進制的第2位)

(3)2 X 2 + 0 = 4(加數0是二進制的第3位)

(4)4 X 2 + 1 = 9(加數1是二進制的第4位)

(5)9 X 2 + 0 = 18(加數0是二進制的第5位)

從第二步運算開始,第一個加數,是一個乘積,而此乘法的第一個乘數剛好是上一步的和,第二個乘數則是進制:

由於第一步(1)0 X 2 + 1 = 1第一個乘數只能是0,所以,第一步的和與加數一定是相同的!也即是說第二步的第一個乘數就是二進制的最高位!

所以,2進制轉換10進制的運算過程應為:(最高位X2+第2位的和)X2+第3位,重復運算至最后一位即可!如下:

2進制的101轉為10進制的運算過程

1X2+0=2 (第一個乘數1是二進制的最高位,第2個加數0是二進制的第2位

2X2+1=5 (第2個加數1是二進制的第3位,也就是最后一位,至此運算結束

101 = 5

 

2進制的11001轉為10進制的運算過程

1X2+1=3

3X2+0=6

6X2+0=12

12X2+1=25

11001=25

 

拓展:取余方法也可以應用於10以內的進制轉換,只要將進制做為除數就可以!

18  轉 4進制

18 / 4= 4 …… 2

4 / 4 = 1 …… 0

1 / 4 = 0 …… 1

反取余數就是:102,所以:18 = 102


免責聲明!

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



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