進製的概念

2021-08-30 20:40:41 字數 3774 閱讀 9690

1.2 進製的概念

因為不可能為每個數值都創造乙個符號,所以需要用基本數字組合出復合的數值,這樣就有了進製的概念。

其實所有進製都是人為的創造,都是用來計數方便的。現在最常用的進製是十進位制,當然其它的進製也在使用中。例如「半斤八兩」這個成語,就反映了古代一斤等於十六兩的概念,也就是十六進製制計數方式。

計算機程式設計中常用的進製有二進位制、八進位制、十進位制和十六進製制,十進位制還是最主要的表達形式。在程式設計中,大家書寫的數值預設為十進位制。

對於進製,有兩個最基本的概念:基數和運算規則。

l 基數基數指一種進製中組成的基本數字,也就是不能再拆分的數字。例如十進位制是0-9,二進位制是0和1,八進位制是0-7,十六進製制是0-9,a-f(大小寫均可)。或者可以簡單的這樣記憶,假設是n進製的話,基數就是[0,n-1]的數字,基數的個數和進製值相同,十進位制有十個基數,依次類推。

l 運算規則運算規則就是進製或借位規則,這個類似於一般計算機書籍中位權的概念,例如對於十進位制來說,該規則是「滿十進一,借一當十」,也就是低位的數字滿十了向高位進一,從高位借到的一,相當於低位上的十。其它的進製也是這樣,對於二進位制來說,就是「滿二進一,借一當二」,八進位制和十六進製制也是這樣。

在數學上表示乙個數字是幾進製,通常使用如下格式:[數值]進製數,例如[10]2 表示二進位制數值10. 1.2.1 二進位制二進位制是計算機內部資料表示的形式,所以學習計算機程式設計必須熟悉二進位制。熟悉二進位制有以下幾個用途:l 更容易理解計算機的資料儲存方式計算機內部的很多轉換,例如資料型別之間的強轉,都可以用二進位制解釋最終的結果的值。

1.2.1二進位制

的運算速度高二進位制的運算速度比十進位制高的多。例如求2的n次方,通過移位實現的效率比數學方法高效。

l 使用二進位制數值進行資料儲存以二進位制的形式儲存數值,乙個是比較節約資源,可以使用二進位制的位來儲存資訊,例如常見的硬體控制資訊,都是二進位制的形式進行提供的。

如前所述,二進位制包含0和1兩個基數,運算規則是「滿二進一,借一當二」,下面簡單的介紹一下二進位制的計數方式。

例如十進位制的0-9用二進位制進行表達,則依次是:0,1,10,11,100,101,110,111,1000,1001說明:數值之間使用逗號進行間隔。

下面是二進位制的一些基本運算結果:

加法運算

0 0 = 0

0 1 = 1

1 0 = 1

1 1 = 10

減法0 – 0 = 0

0 – 1 = -1

1 – 0 = 1

1 – 1 = 0

乘法0 ?0 = 0

0 ?1 = 0

1 ?0 = 0

1 ?1 = 1 l

除法0 / 0 無意義

0 / 1 = 0

1 / 0 無意義

1 / 1 = 1

以下是一些符合的表示式:110 111 = 1101這些基本的運算結構在實際開發中一般不會直接用到,但是通過這些內容可以加深對於二進位制概念的理解。

1.2.2 二進位制和十進位制之間的轉換

由於計算機內部的資料是以二進位制進行表達的,而十進位制又是日常生活中最常用的進製,所以它們之間經常需要進行轉換。下面介紹一下轉換的方式。

1.2.2.1 十進位制轉換為二進位制

十進位制整數轉換為二進位制有三種方法,分別是除二取餘、計算器轉換和經驗法。十進位制小數的轉換方法最後做簡單的介紹。

1. 除二取餘法除二取餘法是轉換時的最基本方法,也是最通用的方法。規則為:使用十進位制和2去除,取每次得到的商和餘數,用商繼續和2相除,直到商為零為止,第一次得到的餘數作為二進位制的低位,最後一次得到的餘數作為二進位制的高位,由餘數組成的數字就是轉換後二進位制的值。例如十進位制的13轉換為二進位制的計算步驟如下:

商 餘數

13 / 2 = 6 1

6 / 2 = 3 0

3 / 2 = 1 1

1 / 2 = 0 1

則計算的最終結果就是1101. 2.

計算器轉換

windows作業系統中的計算器也可以很方便的實現進製之間的轉換。在程式選單中附件子選單中開啟計算器,從開啟的計算器的檢視選單中,選擇「科學型」,輸入你要轉換的十進位制的數字,例如13,然後介面上數字顯示框西側的「二進位制」,則轉換後的數值就直接顯示在計算器中。

經驗法對於二進位制熟悉以後,那麼計算十進位制對應的數字可以通過一些基本的數學變換來實現,在使用經驗法以前,必須熟記2的0-10次方對應的十進位制的值,依次是:1,2,4,8,16,32,64,128,256,512,1024則轉換一些特殊的數字時可以極大的提高轉換速度,例如數字65,則可以這樣轉換:65 = 64 1 64對應的二進位制形式為1000000 1對應的二進位制形式為1則65的二進位制形式為1000001這個只適合轉換一些特殊的數字,適應性沒有除二取餘法廣泛。

十進位制小數的轉換採用的一般方法是乘二取整法,規則為:對於小數部分先乘二,然後獲得運算結果的整數部分,然後將結果中的小數部分再次乘二,直到小數部分為零為止,則把第一次得到的整數部分作為二進位制小數的高位,後續的整數部分作為地位就是轉換後得到的二進位制小數。需要說明的是,有些十進位制小數無法準確的用二進位制進行表達,所以轉換時符合一定的精度即可,這也是為什麼計算機的浮點數運算不準確的原因。

例如0.25轉換為二進位制小數的步驟如下:整數部分0.25 ?2 = 0.5 0 0.5 ?2 = 1.0 1則0.25轉換為二進位制小數為0.01如果乙個十進位制數字既有整數部分,也有小數部分,則分開進行轉換即可。

1.2.2.2 二進位制轉換為十進位制

二進位制轉換為十進位制採用的方法是:數字乘位權相加法。下面先以十進位制為例來說明該方法,例如十進位制數字345的值,5的位權是1,4的位權是10,3的位權是100,則有如下表示式成立: 345=5 ?1 4 ?10 3 ?100,這就是數字乘位權相加法的原理。

其實對於十進位制整數的位權很有規則,從右向左第n位的位權是十的(n-1)方,例如個位是10(1-1),十位是10(2-1),依次類推。那麼二進位制整數的位權規律和這個一致,也就是從右向左第n位的位權是二的(n-1)方。

例如二進位制整數1011轉換為十進位制的表示式為:[1011]2 = 1 ?20 1 ?21 0 ?22 1 ?23 = 1 2 0 8=11而對於二進位制的小數,也是採用一樣的方法,只是二進位制小數的位權規則為,小數點後第一位小數的位權是2的-1次方,第二位是2的-2次方,依次類推。

例如二進位制小數0.1101轉換為十進位制小數的表示式為[0.1101]2=1 ?-1 1 ?-2 0 ?2-3 1 ?2-4 = 0.5 0.25 0 0.0625=0.8125同理,如果二進位制包含整數和小數部分,則分開進行轉換即可。

1.2.3 二進位制和八進位制、十六進製制之間的轉換

雖然二進位制是計算機內部的資料表達形式,但是由於二進位制基數太少,則導致數字比較長,為了簡化數字的書寫,就建立了八進位制和十六進製制。八進位制和十六進製制就是對二進位制的簡化,所以二進位製到八進位制和十六進製制的轉換非常簡單。

二進位制整數轉換為八進位制的方法是「三位一併」,也就是從右側開始,每3位二進位制數字轉換為八進位制的一位,依次類推,因為二進位制的三位數字可以表達的區間是 000-111,剛好和0-7重合。例如:二進位制的10111轉換為8進製為:最後三位111轉換為7,前面的數字10轉換為2,則轉換後得到的八進位制數字為27.二進位制整數轉換為十六進製制的方法是「四位一併」,例如10111轉換為十六進製制是0111轉換為7,1轉換為1,則轉換後得到的十六進製制數字是 17.二進位制小數轉換為八進位制的方法也是「三位一併」,只是轉換時從小數的高位開始,也就是小數的左側開始。例如0.10111轉換為八進位制是101轉換為5,110轉換為6,則轉換得到的八進位制小數為0.56.需要特別注意的是,小數最後如果不足三位,一定要在後續補零以後再進行轉換。

二進位制小數轉換為十六進製制的方法也是「四位一併」,只是轉換時從小數的高位開始。例如二進位制小數0.10111轉換為十六進製制小數為,1011轉換為b,1000轉換為8,則轉換後得到的十六進製制是0.b8.如果二進位制數包含整數和小數部分,則分開進行轉換。

進製的概念

1.2 進製的概念 因為不可能為每個數值都創造乙個符號,所以需要用基本數字組合出復合的數值,這樣就有了進製的概念。其實所有進製都是人為的創造,都是用來計數方便的。現在最常用的進製是十進位制,當然其它的進製也在使用中。例如 半斤八兩 這個成語,就反映了古代一斤等於十六兩的概念,也就是十六進製制計數方式...

進製轉化 簡單概念

二進位制轉八進位制 十六進製制 每3 4位二進位制對應一位八進位制 十六進製制數 二進位制轉十進位制 按權展開 整數 1 2 n 1 n為位數 小數 1 2 n 八進位制轉二進位制 一位八進位制數表示三位二進位制數 八進位制轉十進位制 按權展開 整數 x 8 n 1 n為位數,x為當前位的八進位制數...

進製計數制的基本概念

一 進製計數制的基本概念 將數字符號按序排列成數字,並遵照某種由低位到高位進製的方法進行計數,來表示數值的方式,稱作進製計數制。比如,我們常用的是十進位計數制,簡稱十進位制 就是按照 逢十進一 的原則進行計數的。進製計數制的表示主要包含三個基本要素 數字 基數和位權。數字是指數碼在乙個數中所處的位置...