正文 第一章 計算機基礎知識(三)(2 / 3)

1.2數製及其相互轉換

數製是人們利用符號來計數的科學方法。數製的種類很多。我們人類習慣使用的是十進製,即0,1,2,3,4,5,6,7,8,9,10……進位原則是逢十進一。其實,我們也用過其它進製。倒如,每年l2個月,就是十二進製;每小時60分鍾,每分鍾60秒,則是六十進製。每周7天又是七進製。因此,根據需要,可以采用任何進製。

1.2.1二進製及其相關的概念

在計算機內部一切信息都是用二進製數來表示的,也就是說二進製是計算機存儲和處理數據的基本方式。那麼,為什麼要在計算機中采用二進製數呢?

據說,人們之所以普遍采用十進製計數,是與當初用十個手指計數分不開的。在生產力不足的遠古時代,雙手是最方便的計算工具。而今天的計算機之所以使用二進製,是與構成計算機的電子元件分不開的。電子元件通常隻有兩種穩態:導通與阻塞,高電位與低電位等。用此來計數,隻能表示兩個數字:0和1。如以導通代表1,以阻塞代表0;以高電位代表1,以。低電位代表0。多個元件排列起來,就可以表示多位二進製數。這是很容易實現的。

除此之外,二進製數的運算比較簡單,容易使計算機的運算器結構化。用二進製數還可以進行邏輯運算,如用1表示真,0表示假。而且,由於二進製數隻有0和1兩個數,在傳輸和處理時,容易保證其正確性,從而提高了計算機的可靠性。

按照十進製的進位規律,我們可以看出二進製的進位原則是逢二進一。十進製的1用=進製表示仍然為1,而十進製的2用二進製表示則為1O。

平時我們所說的內存有多少“兆”,實際上就是指該存儲器的容量是多少“MB”,不過lMB並不等於l068,而是等於1024×10248。這是因為在計算機中“千”、“兆”等都是用二進製數表示的,所以有:

1KB=210B=10248

1MB=220B=1024KB

1GB=230B=1024MB

計算機中常用“字長”來表示數據的長度。“字’’是在計算機內部作為一個整體進行傳送和參加運算的二進製串。實際上,微處理器的位數就是字長。一個字通常由若幹個字節組成,故字長一般是8的整數倍。如字長有8位、16位、32位和64位。不同的機器可能字長不同。計算機的字長位數越多,能支持的指令越多,功能越強;在相同的時間內傳送的信息也越多,使機器速度更快;還能使計算機有更大的尋址空間,從而有更大的主存容量。可見。字長的概念是很重要的。

1.2.2計算機中常用的數製

計算機內部總是使用二進製數來工作的,但是我們習憤使用的是十進製數,對二進製數的摯認和書寫都不習慣,所以計算機允許人們用十進製數與其交換信息,而十進製數與二進製數妾粵的轉簍則由機器自動完成。除此以外,二進製數占用的位數比較多,而八進製和十六進製警皇之換算比較簡單且位數比較少,故在計算機中還允許使用掌製數和十六進製數。作為對計算機的了解,應該對計算機中常用的數製有一定的認識。

1.十進製

一種數製所使用的數碼個數稱為“基”。十進製使用的字符集是0~9,即l0個字符,所以十進製的基為l0。在同一種數製中,每一位數字所具有的意義是不同的,或者說具有不同的“權”,而每一種數製中各位的權都與這種數製的基有關。

2.二進製

二進製所使用的字符集隻有兩個字符:0和1。所以二進製的基是2。二進製各位的權,則是以基“2”為底的冪。例如:=1×23十1×22十1×20十1×2—1十1×2—2十1×2—3

如果把該等式各項求和,便得到了所對應的十進製數,即把二進製數轉換成了十進製數。例如:=1×22十1×21十1×20十1×2—2=10

3.八進製

4.十六進製

十六進製的數碼集有十六個字符,即0~9,A~F,其中A~F分別代表i0~15;t六進N的基為16,各位的權為l6的冪。

1.2.3十進製數轉換為其它進製數

把十進製數轉換成其它進製數,要將整數部分和小數部分分別用不同的方法轉換。

整數部分皂采用“除基取餘法”,而轉換小數部分則采用“乘基取整法”。下麵我們分別舉例說明十進製數如何轉換為二進製、八進製和十六進製數。

1.十進製數轉換為二進製數

整數轉換:

十進製整數轉換為二進製整數,采用“除二取餘法”,形式上類似於數學中的短除法。具體步驟如下:

用2去除十進製整數,將餘數列在右邊,該餘數為二進製整數的最低位。

用2去除前次的商,餘數仍列在右邊,為二進製整數的次低位。

重複執行上一步,直至商為0,商為0的餘數是轉換後的二進製整數最高位。

十進製小數轉換為二進製小數,用“乘二取整法”。具體做法如下:

用2去乘十進製小數,取出積的整數部分列在上邊,該數為二進製小數的最高位。

再用2去乘前次積的小數部分,同樣將積的整數部分列於上邊,為二進製小數的次高位。

重複上一步,直至乘積為0或已達到要求的小數位數。

2.十進製數轉換為八進製數

十進製數轉換為八進製數,整數部分采用“除8取餘法”,小數部分采用“乘8取整法”,具體算法與十進製轉換為二進製數完全相似。