一 計算機科學基礎 1.1數制及轉換

基本概念:

^ = 介乘

2^4 = 二的四次方

2^-4 = 二的負四次方,也就是1/16,十六分之一

位 = 整數部分個位爲0位,十位爲1位,百位爲2位,小數點後面第一位爲-1位,其他位同理

 二進制轉換各個進制 :

// 分解求和法

 2 --> 10 :  100110.101B = 2^5+2^2+2^1+(2^-1+2^-3) = 32+4+2+(1/2+1/8) = 38+5/8 = 38.625D

// 421法

 2 --> 8   :  10101111.10111B = 010 101 111 . 101 110B = 2 5 7 . 5 6 = 257.56O

// 8421法

 2 --> 16 :  10101111.10111B = 1010 1111. 1011 1000B = 10 15 . 11 8 = A F . B 8 = AF.B8H

各個進制轉換成二進制 :

//整數部分除二取餘,最後倒取,小數部分乘二取整(整數部分),最後正取

10 --> 2 :  38.625D = 38 % 2 = 0     = 0.625 * 2 = 1.250   最終結果整數倒取,小數正取 = 100110.101B

                             = 19 % 2 = 1     = 0.250 * 2 = 0.5

                             =  9  % 2 = 1     = 0.500 * 2 = 1

                             =  4  % 2 = 0

                             =  2  % 2 = 0

                             =  1  % 2 = 1    

//使用421法逆運算及可,小數部分也一樣

 8  --> 2 :   257.56O = (2 = 010) (5 = 101) (7 = 111).(5 = 101) (6 = 110) = 10101111.10111B

//同八到二一樣,但算法使用8421法

16 --> 2 :   AF.B8H = (A = 1010) (F = 1111).(B = 1011) (8 = 1000) = 10101111.10111B

 

其實我們知道以上這些就可以了,可以於2進製爲通用進制,來進行各個進制之間的轉換,但再多學一點也好,下面我們來看下10進制到16進制和10進制到8進制之見的轉換吧.

其實道理很簡單,十轉二的時候是用除二取餘的辦法,那麼16進制就是除16取餘,8進制是除8取餘數,小數部分乘8或16取整.

10 --> 8 :  38.625D = 38 % 8 = 6   = 0.625 * 8 = 5     最終結果整數部分倒取,小數部分正取 = 46.5O

                             =  4  % 8 = 4 

10 --> 16 : 38.625D = 38 % 16 = 6  = 0.652 * 16 = 10 最終結果整數部分倒取,小數部分正取 = 26.AH

                                = 2 % 16 = 2

反或來進行各個位到10進制也是和二進制一個道理  只不過位的權 不一樣了~ 二進制是2,16進制是16,8進制是8.

 8  --> 10 : 46.5O = 4*8^1 + 6*8^0 + 5*8^-1 = 32 + 6 + 5/8 = 38.625D

16 --> 10 : 26.AO = 2*16^1 + 6*16^0 + 10(A) * 16^-1 = 32 + 6 + 10/16 = 38.625

OK 清晰的理解上面的轉換規則,遇到數制轉換也就不會再有問題了.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章