2010年一級結構基礎輔導:(計算機應用基礎)備考講義(2)

字號:

三、數制轉換轉
    計算機內的數可有二進制、八進制、十六進制、十進制等不同的表現形式。人們多習慣于用十進制,計算機則主要使用二進制。因為同一個數可表示成不同進制的形式,故常有必要進行數制間的轉換。
    我們可以一般地描述r進制,其中r是一個大于1的正整數。r進制有如下特點:(1)數的每一位只能取r個不同的數字,其符號集是{0,1,…r-1};(2)逢r進位,r進制數的從小數點開始向左的第i位數(i=0,l,…, m)的權是ri,從小數點開始向右的第i位數(i =I,2,…,m)的權是ri。我們用( ) r表示括號內的數是r進制數。
    因此,對r進制數(amam-1…ala0a-1 a-2…a-n)r按權展開的表達式為:
    (amam-1…ala0a-1 a-2…a-n)r
    =am×rm+am-1×rm-1+。。。+a1×r1+a0×r0+a-1×r-1+a-2×r-2+。。。+a-n×r-n (7-1-1)
    例如,對十進制數, r=10,符號集為{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}。對十六進制數,r=16,符號集為{0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F}。不同數制之間的轉換,對于整數部分,往往可直接按定義進行,即直接法,也可用余 數法轉換。采用余數法時,若要將r進制的整數M轉換成t進制數的整數,則把M除以 t并取余,再把上述得數除以t并取余,……,直至不能再除時,最后的商也作為余數。 所有的余數按從后到前的次序依次從左到右排列就構成了所要求的t進制數。
     【例7-1-1】把(1101011)2轉換成十進制數。
    【解】用直接法。
    (1101011)2=1×26 + 1×25 + 0×24 + 1×23 + 0×22 + 1×21十1×20= (107) 10
    【例7-1-2】把(107) 10轉換成二進制數。
    【解】用余數法。107/2得53余1; 53/2得26余1; 26/2得13余0; 13/2得6余 1; 6/2得3余0; 3/2得1余1。把最后的得數1亦作為余數,把所有的余數按從后到前 的次序從左到右排列得:
    (107)10 = (1101011)2不同數制之間的轉換,對于小數部分,可用取整法,即:要將r進制數的小數M轉 換成t進制數的小數時,把M乘t ,取整數部分;又取上一步得數的小數部分再乘t,再 取整數部分;……;直至完畢或達到要求的位數。然后把各整數按從前到后的次序從左到 右排列,即構成所求的小數部分。