官术网_书友最值得收藏!

1.1 計算機中的數制及數制的轉換

十進制是人們生活中普遍使用的計數制,但計算機都是以二進制形式進行算術運算和邏輯運算操作的,微型計算機也不例外。因此,對于用戶在鍵盤上輸入的十進制數字和符號命令,微型計算機必須先把它們轉換成二進制形式進行識別、運算和處理,然后再把二進制形式的運算結果轉換為人們容易識別的十進制數字和符號,并在顯示器上顯示出來。

上述過程都是由計算機自動完成的,在微型計算機中除了用到二進制和十進制的數制外,經常會用到八進制和十六進制的計數制,為了使讀者弄清計算機中數制轉換的原理,先對計算機中常用的數制和數制的轉換進行討論。

1.1.1 計算機中的數制

所謂數制是指數的制式,是人們利用符號計數的一種科學方法。數制有很多種,微型計算機中常用的數制有十進制、二進制、八進制和十六進制等。

1.十進制(Decimal)

十進制是人們生活中普遍使用的數制,它用0、1、2、…、9這十個數來描述。十進制數的主要特點如下:

①它有0~9十個不同的數,這是構成所有十進制數的基本符號。

②它是逢10進位的。十進制數在計數過程中,當它的某位計滿10時就要向它鄰近的高位進1。

2.二進制(Binary)

二進制是在計算機系統中使用的數制,它用0、1這兩個數來描述。二進制數的主要特點如下:

①任何二進制數都是由0、1這兩個數組成。

②二進制數的基數為2,它遵循逢2進1的進位計數原則。

3.十六進制(Hexadecimal)

十六進制是計算機指令代碼和數據以及軟件工具中經常使用的數制,它用0、1、…、9和A、B、…、F這十六個數和字母來描述。十六進制數的主要特點如下:

①任何一個十六進制數都是由0、1、…、9和A、B、…、F這十六個數和字母構成。

②十六進制數的基數為16,它遵循逢16進1的進位計數原則。

為方便起見,現將部分十進制、二進制和十六進制數的對照表列于表1-1。

表1-1 部分十進制、二進制和十六進制數的對照表

978-7-111-44921-8-Chapter01-1.jpg

1.1.2 數制間的轉換

在計算機中都是以二進制數進行算術運算和邏輯運算操作的,而人們習慣使用十進制數,計算機會自動對不同數制的數進行轉換。下面學習不同數制的數是如何轉換的。

1.二進制數和十進制數間的轉換

(1)二進制數轉換成十進制數

二進制數轉換成十進制數只要把欲轉換數按權展開后相加即可。例如:

11010.01B=1×24+1×23+1×21+1×2-2=26.25

(2)十進制數轉換成二進制數

本轉換過程是上述轉換過程的逆過程,但十進制整數和小數轉換成二進制整數和小數的方法是不相同的,現分別進行介紹。

1)十進制整數轉換成二進制整數

常用的是“除2取余法”。用2連續去除要轉換的十進制數,直到商小于2為止,然后把各次余數按最后得到的為最高位、最早得到的為最低位,依次排列起來所得到的數便是所求的二進制數。

【例1-1】 100= B 余數

978-7-111-44921-8-Chapter01-2.jpg

答案:100D=1100100B

2)十進制小數轉換成二進制小數

通常采用“乘2取整法”。用2連續去乘要轉換的十進制小數,直到所得積的小數部分為0或滿足所需精度為止,然后把各次整數按最先得到的為最高位、最后得到的為最低位,依次排列起來所對應的數便是所求的二進制小數,現結合實例加以介紹。

【例1-2】 0.625D= B

乘2取整 整數部分

978-7-111-44921-8-Chapter01-3.jpg

答案:0.625D=0.101B

2.二進制數與十六進制數的轉換

1)二進制數轉換為十六進制數

采用四位二進制數合成為一位十六進制數的方法,以小數點為界分成左側整數部分和右側小數部分;整數部分從小數點開始,向左每4位二進制數一組,不足4位在數的前面補0;小數部分從小數點開始,向右每4位二進制數一組,不足4位在數的后面補0,然后每組用十六進制數碼表示,并按序相連即可。

【例1-3】 把111010.011110B轉換為十六進制數。

00111010.01111000=3A.78H

3A7 8

2)十六進制數轉換為二進制數

將十六進制數的每位分別用4位二進制數碼表示,然后它們按序連在一起即為對應的二進制數。

【例1-4】 把2BD4H和20.5H轉換為二進制數

2BD4H=0010101111010100B

20.5H=00100000.0101B

3.十六進制數與十進制數的轉換

(1)十六進制數轉換成十進制數

十六進制數轉換成十進制數的方法和二進制數轉換成十進制數的方法類似,將十六進制數按權展開后求和即得到十進制數。

【例1-5】 將十六進制數3DF2H轉換成十進制數。

3DF2H=3×163+13×162+15×161+2×160=15858

(2)十進制數轉換成十六進制數

①十進制整數轉換成十六進制整數與十進制整數轉換成二進制整數類似,十進制整數轉換成十六進制整數可以采用“除16取余法”。用16連續去除要轉換的十進制整數,直到商數小于16為止,然后把各次余數按逆得到順序排列起來所得的數,便是所求的十六進制數。

②十進制小數轉換成十六進制小數的方法類似十進制小數轉換成二進制小數,常采用“乘16取整法”。把欲轉換的十進制小數連續乘以16,直到所得乘積的小數部分為0或達到所需精度為止,然后把各次整數按相同的得到順序排列起來所得的數,便是所求的十六進制小數。

主站蜘蛛池模板: 阿荣旗| 玛多县| 衡水市| 天津市| 浪卡子县| 怀宁县| 富源县| 车险| 铜鼓县| 铅山县| 佳木斯市| 南昌县| 屯昌县| 阜新| 岳西县| 遂昌县| 修水县| 依安县| 蛟河市| 阜平县| 罗江县| 共和县| 开江县| 夏津县| 土默特左旗| 杭州市| 新密市| 天长市| 和林格尔县| 香港| 靖江市| 喀什市| 邓州市| 莱芜市| 八宿县| 齐齐哈尔市| 城固县| 汝州市| 定结县| 肇州县| 墨竹工卡县|