十進(jìn)制轉(zhuǎn)二進(jìn)制 - 進(jìn)制轉(zhuǎn)換的方式
十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)時,由于整數(shù)和小數(shù)的轉(zhuǎn)換方法不同,所以先將十進(jìn)制數(shù)的整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換后,再加以合并。而由二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)是把二進(jìn)制數(shù)首先寫成加權(quán)系數(shù)展開式,然后按十進(jìn)制加法規(guī)則求和,這種做法稱為“按權(quán)相加”法。
數(shù)制簡介
二進(jìn)制
20世紀(jì)被稱作第三次科技革命的重要標(biāo)志之一的計(jì)算機(jī)的發(fā)明與應(yīng)用,其運(yùn)算模式正是二進(jìn)制,二進(jìn)制是計(jì)算技術(shù)中廣泛采用的一種數(shù)制。二進(jìn)制數(shù)據(jù)是用0和1兩個數(shù)碼來表示的數(shù)。它的基數(shù)為2,進(jìn)位規(guī)則是“逢二進(jìn)一”,借位規(guī)則是“借一當(dāng)二”,由18世紀(jì)德國數(shù)理哲學(xué)大師萊布尼茲發(fā)現(xiàn)。當(dāng)前的計(jì)算機(jī)系統(tǒng)使用的基本上是二進(jìn)制系統(tǒng)。
十進(jìn)制
十進(jìn)制計(jì)數(shù)法是相對二進(jìn)制計(jì)數(shù)法而言的,是我們?nèi)粘J褂米疃嗟挠?jì)數(shù)方法(俗稱“逢十進(jìn)一”),它的定義是:“每相鄰的兩個計(jì)數(shù)單位之間的進(jìn)率都是十”的計(jì)數(shù)方法,叫做“十進(jìn)制計(jì)數(shù)法”。
二進(jìn)制轉(zhuǎn)十進(jìn)制
方法一
小數(shù)點(diǎn)前或者整數(shù)要從右到左用二進(jìn)制的每個數(shù)去乘以2的相應(yīng)次方并遞增,小數(shù)點(diǎn)后則是從左往右乘以二的相應(yīng)負(fù)次方并遞減。
例如:二進(jìn)制數(shù)1101.01轉(zhuǎn)化成十進(jìn)制
1101.01(2)=1*20+0*21+1*22+1*23?+0*2-1+1*2-2=1+0+4+8+0+0.25=13.25(10)
所以總結(jié)起來通用公式為:
abcd.efg - 2=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3(10)
方法二
或者用下面這種方法:
把二進(jìn)制數(shù)首先寫成加權(quán)系數(shù)展開式,然后按十進(jìn)制加法規(guī)則求和。這種做法稱為"按權(quán)相加"法。
2的0次方是1(任何數(shù)的0次方都是1,0的0次方無意義)
2的1次方是2
2的2次方是4
2的3次方是8
2的4次方是16
2的5次方是32
2的6次方是64
2的7次方是128
2的8次方是256
2的9次方是512
2的10次方是1024
2的11次方是2048
2的12次方是4096
2的13次方是8192
2的14次方是16384
2的15次方是32768
2的16次方是65536
2的17次方是131072
2的18次方是262144
2的19次方是524288
2的20次方是1048576
此時,1101=8+4+0+1=13
再比如:二進(jìn)制數(shù)100011轉(zhuǎn)成十進(jìn)制數(shù)可以看作這樣:
數(shù)字中共有三個1?即第六位一個,第二位一個,第一位一個(從右到左),然后對應(yīng)十進(jìn)制數(shù)即2的0次方+2的1次方+2的5次方,?即
100011=32+0+0+0+2+1=35
十進(jìn)制轉(zhuǎn)二進(jìn)制
1.十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)
十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)采用"除2取余,逆序排列"法。具體做法是:用2整除十進(jìn)制整數(shù),可以得到一個商和余數(shù);再用2去除商,又會得到一個商和余數(shù),如此進(jìn)行,直到商為0時為止,然后把先得到的余數(shù)作為二進(jìn)制數(shù)的低位有效位,后得到的余數(shù)作為二進(jìn)制數(shù)的高位有效位,依次排列起來。
十進(jìn)制整數(shù)轉(zhuǎn)二進(jìn)制
如:255=(11111111)B
255/2=127=====余1
127/2=63======余1
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1
3/2=1=========余1
1/2=0=========余1
789=1100010101 - B
789/2=394余1第10位
394/2=197余0第9位
197/2=98余1第8位
98/2=49余0第7位
49/2=24余1第6位
24/2=12余0第5位
12/2=6余0第4位
6/2=3余0第3位
3/2=1余1第2位
1/2得0余1第1位
原理:
眾所周知,二進(jìn)制的基數(shù)為2,我們十進(jìn)制化二進(jìn)制時所除的2就是它的基數(shù)。談到它的原理,就不得不說說關(guān)于位權(quán)的概念。某進(jìn)制計(jì)數(shù)制中各位數(shù)字符號所表示的數(shù)值表示該數(shù)字符號值乘以一個與數(shù)字符號有關(guān)的常數(shù),該常數(shù)稱為“位權(quán)”。位權(quán)的大小是以基數(shù)為底,數(shù)字符號所處的位置的序號為指數(shù)的整數(shù)次冪。十進(jìn)制數(shù)的百位、十位、個位、十分位的權(quán)分別是10的2次方、10的1次方、10的0次方,10的-1次方。二進(jìn)制數(shù)就是2的n次冪。
按權(quán)展開求和正是非十進(jìn)制化十進(jìn)制的方法。
下面我們開講原理,舉個十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)的例子,假設(shè)十進(jìn)制整數(shù)A化得的二進(jìn)制數(shù)為edcba的形式,那么用上面的方法按權(quán)展開,得:
A=a - 2^0+b - 2^1+c - 2^2+d - 2^3+e - 2^4(后面的和不正是化十進(jìn)制的過程嗎)
假設(shè)該數(shù)未轉(zhuǎn)化為二進(jìn)制,除以基數(shù)2得:
A/2=a - 2^0/2+b - 2^1/2+c - 2^2/2+d - 2^3/2+e - 2^4/2
注意:a不能整除2,但其他的能整除,因?yàn)樗麄兌及?,而a乘的是1,他本身絕對不包含因數(shù)2,只能余下。
商得:b - 2^0+c - 2^1+d - 2^2+e - 2^3,再除以基數(shù)2余下了b,以此類推。
當(dāng)這個數(shù)不能再被2除時,先余掉的a位數(shù)在原數(shù)低,而后來的余數(shù)數(shù)位高,所以要把所有的余數(shù)反過來寫。正好是edcba
2.十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù)
十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制小數(shù)采用"乘2取整,順序排列"法。具體做法是:用2乘十進(jìn)制小數(shù),可以得到積,將積的整數(shù)部分取出,再用2乘余下的小數(shù)部分,又得到一個積,再將積的整數(shù)部分取出,如此進(jìn)行,直到積中的小數(shù)部分為零,此時0或1為二進(jìn)制的最后一位?;蛘哌_(dá)到所要求的精度為止。
然后把取出的整數(shù)部分按順序排列起來,先取的整數(shù)作為二進(jìn)制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。
十進(jìn)制小數(shù)轉(zhuǎn)二進(jìn)制0.625=(0.101)B
0.625*2=1.25======取出整數(shù)部分1
0.25*2=0.5========取出整數(shù)部分0
0.5*2=1==========取出整數(shù)部分1
0.7=(0.101100110)B
0.7*2=1.4========取出整數(shù)部分1
0.4*2=0.8========取出整數(shù)部分0
0.8*2=1.6========取出整數(shù)部分1
0.6*2=1.2========取出整數(shù)部分1
0.2*2=0.4========取出整數(shù)部分0
0.4*2=0.8========取出整數(shù)部分0
0.8*2=1.6========取出整數(shù)部分1
0.6*2=1.2========取出整數(shù)部分1
0.2*2=0.4========取出整數(shù)部分0
原理:
關(guān)于十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù)
假設(shè)一十進(jìn)制小數(shù)B化為了二進(jìn)制小數(shù)0.ab的形式,同樣按權(quán)展開,得B=a - 2^-1+b - 2^-2
因?yàn)樾?shù)部分的位權(quán)是負(fù)次冪,所以我們只能乘2,得2B=a+b(2^-1
注意a變成了整數(shù)部分,我們?nèi)≌麛?shù)正好是取到了a,剩下的小數(shù)部分也如此。
值得一提的是,小數(shù)部分的按權(quán)展開的數(shù)位順數(shù)正好和整數(shù)部分相反,所以不必反向取余數(shù)了。
