十進位轉二進位

要把十進位的數字轉成二進位的數字其實非常簡單,我們直接看例子

例題一 把十進位的152轉成二進位表示

方法一:二的次方裡面離152最近的數是128(2的七次方),152-128=24 ---->2的七次方係數是1

             二的次方裡面離24最近的數是16(2的四次方),24-16=8 ---->2的四次方係數是1

             二的三次方是8,---->2的三次方係數是1

             接著把其他次方的係數全部補0,我們得到152轉成二進位是10011000

             驗算答案的方法也很簡單,10011000裡頭最右邊的零代表2的零次方係數是0,右邊數來第二個零代表2的一次方係數是0,同理最左邊的1代表2的七次方係數是1

             我們就可以算出1*2^7+0*2^6+0*2^5+1*2^4+1*2^3+0*2^2+0*2^1+0*2^0=152

方法二:比較快的做法是用除法算,就像下面這張圖

進位除法.PNG

最後依照箭頭方向把圈起來的數字由左寫到右即可,因此十進位的152以二進位表示就是10011000

 

如果要轉乘三進位、四進位等等n進位,只要把二換成n即可 

-----------------------------------------------------------------------------------------------

剛剛是整數的情況,有時候我們會遇到帶小數的情況,當然也有很簡單的處理方式

例題二:把十進位的23.625轉成二進位

方法:首先把整數和小數拆開來算,算完以後再以小數點為界線,整數部分擺在小數點左邊,小數部分擺在小數點右邊。

以這題來說,整數部分23可以用例題一的方法算出其二進位為10111

小數部份0.625我們用乘法逆推,如下圖

小數點進位.PNG

依照很醜的紅色箭頭方向把數字由左寫到右我們就可以得到十進位的0.625用二進位表示就是0.101

驗算:1*2^(-1)+0*2^(-2)+1*2^(-3)=0.625

最後我們把整數部分和小數部分加起來就大功告成 23.625轉成二進位就是10111.101

----------------------------------------------------------------------------------------------------------

如果是把十進位的小數轉成八進位呢?

跟轉成二進位的做法一模一樣,只是2改成8

舉例來說:把0.19用八進位表示(礙於篇幅只算到小數點後第四位)

十進位小數點轉8進位.PNG

因此十進位制的0.19轉到八進位就是0.1412.......

----------------------------------------------------------------------------------------------------------

接著我們挑戰進階一點點的,把二進位轉成八進位

例題三:二進位的1001.0101轉成八進位

第一個做法是把二進位先轉成十進位,再把十進位轉成八進位,但是我們可以用更有效率的做法

第一步,以小數點為界線,把整數部分和小數部分一刀切,接著因為8=2^3,2=2^1,3/1=3,我們把這些數字以小數點為起點,每三個三個一組,如下圖

二進位轉十六進位.PNG

如果遇到沒有辦法三個畫一組的情況就把空缺補0直到滿三個(就像上面這張圖),接下來每組分別做轉換,然後照著寫出來就可以了,所以答案是11.24

八進位轉成二進位更簡單,只要把每個數字分別轉成二進位再擺在一起就好了,以這裡的11.24來說。

1=001

1=001

2=010

4=100

得出答案001001.010100,通常最前面和最後面的0可以省略,所以就是1001.0101

如果要二進位轉十六進位就每四個一組,以此類推

 

arrow
arrow

    Worldexplorer 發表在 痞客邦 留言(0) 人氣()