珠海青禾電子有限公司
聯系青禾
4000-000-0000
電話:0756-6918801
請輸入要描述內容
請輸入要描述內容
傳真:0756-6918808
郵箱:sales@gdqinghe.com

計算機中信息的表示方法

發表時間:2018-01-24 17:44

計算機中信息的表示方法

計算機所能處理的數據、信息在計算機中都是以數字編碼形式表示的。那么這些數字編碼是以什么形式表示的、與日常表示的數有何區別、相互之間如何轉換?字母、符號又如何表示等等。


1 計算機中的數制

1.1 數制的概念

1.1.1 十進制數

   十進制數用0、1、2、3、4、5、6、7、8、9十個數字表示。十進制數的特點是逢十進一。例如十進制數5067可以用如下數學式表示:5067=5×103+0×102+6×101+7×100。

   一個n位十進制數ala2a3…an,可以表示為:

                              a1×10n-1+a2×10n-2+…+an×100

這里的10n-1,10n-2…100稱為該位上的權。相鄰兩位中高位的權與低位的權之比稱為基數,所以十進制數的基數為10。


1.1.2 二進制數

   基數為2的計數制稱為二進制。二進制數用0、1兩個數字表示。二進制數的特點是逢二進一。

   一個n位二進制數ala2a3…an可以表示為:

                           N=(a1a2a3…an)2

   N為這個二進制數所代表的十進制數的值。把二進制數按權展開求和所得到的值即為這個二進制數代表的十進制數的值。

                           N=a1×2n-1+a2×2n-2+a3×2n-3+…+an×20

   例如,二進制數11011按權展開為:

               (11011)2=1×24+1×23+0×22+1×21+1×20=(27)10

   所以二進制數11011代表的十進制數為27。

   二進制數的運算規則為:

   ①加法  0+0=0 0+1=1  1+0=1  1+1=0(有進位)

   ②減法  0-0=0 0-1=1(有借位)  1-0=1  1-1=0

   ⑨乘法  0×0=0  0×1=0  1×0=0  1×1=1

   ④除法  0÷1=0  1÷1=1

與十進制數的數學式相比,二進制數的基數為2,二進制數的權值變化為2n-1,2n-2,2n-3,…,20。


1.1.3 十六進制數

基數為16的計數制稱為十六進制。十六進制數用O、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F(大小寫字母均可)表示。其中,A、B、C、D、E、F分別表示十進制數10、11、12、13、14、15。十六進制數的特點是逢十六進一。

一個n位十六進制數ala2a3…an可以表示為:

                                     N=(a1a2a3…+an)16

   例如,十六進制數A2F按權展開為:

          (A2F)16=A×162+2×161+F×160=10×162+2×161+15×160=(2607)10

   所以十六進制數A2F代表的十進制數為2607。

   十六進制數的權值變化為16n-1,16n-2,16n-3,…,160。

二進制數與十進制數、十六進制數之間的對應關系如下表所示。

1.png


1.2 各種數制間的相互轉換

1.2.1 十進制數轉換為二進制數

整數部分:用除2取余的方法轉換,先余為低,后余為高;

小數部分:用乘2取整的方法轉換,先整為高,后整為低。

例如,把十進制數18.6875轉換為二進制數,可以用以下方法:

整數部分:用“除2取余法”先求出與整數18對應的二進制數。

2.png


1.2.2 十進制數轉換為十六進制數

整數部分:用除16取余的方法轉換,先余為低,后余為高;

小數部分:用乘16取整的方法轉換,先整為高,后整為低。

例如,把十進制數1023轉換為十六進制數,可以用以下方法:

3.png


1.2.4  十六進制數轉換為二進制數

將十六進制數轉換成二進制數的方法是:將每一位十六進制數用四位二進制數表示,即可得到相應的二進制數。

例如:將十六進制數4C3F轉換成二進制數:

4.png

由以上例題可見,從二進制數很容易直接寫成十六進制數,比用十進制數表示方便得多。


2 計算機中數的表示

在十進制數中,可以在數字前面加上“+”、“-”號來表示正負數,顯然,計算機不能直接識別“+”、“-”號,那么可以用“0”來表示“+”,用“1”來表示“-”,這樣數的符號也可以數字化了。

在計算機中,通常將二進制數的首位(最左邊那一位)作為符號位,若二進制數是正的則其首位是0,二進制數是負的則首位是1。像這種符號也數碼化的二進制數稱為“機器數”,原來帶有“+”、“-”號的數稱為“真值”。例如:

十進制               +67        -67

二進制(真值)      +1000011 -1000011

計算機內(機器數)  01000011 11000011

機器數在機內也有三種不同的表示方法,這就是原碼、反碼和補碼。

(1)原碼

用首位表示數的符號,0表示正,1表示負,其他位則為數的真值的絕對值,這樣表示的數就是數的原碼。

例如:  X=(+105)   [X]原=(01101001)2

       Y=(-105)     [Y]原=(11101001)2

0的原碼有兩種,即   [+0]原=(00000000)2

                    [-0]原=(10000000)2

原碼簡單易懂,與真值轉換起來很方便。但若是兩個異號的數相加或兩個同號的數相減就要做減法,就必須判別這兩個數哪一個絕對值大,用絕對值大的數減去絕對值小的數,運算結果的符號就是絕對值大的那個數的符號,這些操作比較麻煩,運算的邏輯電路實現起來較復雜。于是,為了將加法和減法運算統一成只做加法運算就引進了反碼和補碼。

(2)反碼

反碼使用得較少,它只是補碼的一種過渡。

正數的反碼與其原碼相同,負數的反碼是這樣求得的:符號位不變,其余各位按位取反,即0變為1,1變為0。例如:

   [+65]原=(01000001)2    [+65]反=(01000001)2

   [-65]原=(11000001)2     [-65]反=(1011lllO)2

很容易驗證:一個數反碼的反碼就是這個數本身。

(3)補碼

正數的補碼與其原碼相同,負數的補碼是它的反碼加1,即求反加1。例如:

   [+63]原=(00111111)2   [+63]反=(00111111)2    [+63]補=(00111111)2

   [-63]原=(101111l1)2    [-63]反=(11000000)2    [-63]補=(11000001)2

同樣也很容易驗證:一個數的補碼的補碼就是其原碼。

引入了補碼以后,兩個數的加減法運算就可以統一用加法運算來實現,此時兩數的符號位也當成數值直接參加運算,并且有這樣一個結論,即兩數和的補碼等于兩數補碼的和。所以在計算機系統中一般采用補碼來表示帶符號的數。


2  計算機中信息的編碼

從本質上說計算機只“認識”兩個數字,這就是1和0。在計算機內部,無論是運算處理的數據、發出的控制指令、數據存放的地址,還是通信時傳輸的數據都是二進制數。那么計算機為什么會這么“神奇”,這么功能強大呢?原來,計算機計算的數、處理的字母符號、漢字、圖形、圖像、聲音都必須按一定規則變成二進制數,這就是說,任何數據要交給計算機處理都必須用二進制數字1和0表示,這一過程就是數據的編碼。


2.1 BCD

人們已習慣了十進制數,而計算機只使用二進制數,為了直觀和方便起見,在計算機輸入和輸出時另外規定了一種用二進制編碼表示十進制數的方式,即每一位十進制數數字對應4位二進制數編碼,這種編碼稱為BCD碼(Binary Coded Decimal二進制編碼的十進制數)或稱為8421碼。此處所述的8421是這4位二進制數的權,lO個十進制數字對應的BCD碼見下表所示。

注意:BCD碼僅在形式上將十進制數變成了由1和0組成的二進制形式,實質上它還是表示十進制數,只不過每位十進制數用4位二進制數編碼罷了,其運算規則和數值大小都是十進制的。

4.png

例如,設有一序列01100101。

   將它理解成二進制數時,對應的十進制數是:

   0×27+1×26+1×25+0×24+0×23+1×22+0×21+1×20=64+32+4=1=(101)10

   若將它理解成BCD碼,則對應的十進制數是65,因為前四位表示6,后四位表示5。


2.2 字符的編碼

   前面所述的是數值數據的編碼,而計算機處理的另一大類數據是字符,各種字母和符號也必須用二進制

數來編碼后才能交給計算機處理。目前,國際上通用的西文字符編碼是ASCII(American Standard Code for Information Interchange美國國家標準信息交換代碼),其碼表參見下表。


3 計算機中的信息單位

3.1 位(bit)

一位二進制數(1或0)是計算機處理數據的最小單位,音譯為“比特”。


3.2 字節(Byte)

   將8位二進制數放在一起就組成了一個字節,音譯為“拜特”。字節是計算機內存儲數據的基本單位,字節簡記為B,1B=8bit。

常用的字節單位:

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB


3.3 字(Word)和字長

計算機進行數據處理時,一次存取、加工、傳送的數據長度稱為一個字,一個字一般由若干字節組成。

計算機一次能處理的二進制位數的多少稱為計算機的字長,字長決定了計算機處理數據的速率。顯然,字長越長,速度越快,所以字長是衡量計算機性能的一個重要標志。


會員登錄
登錄
其他帳號登錄:
我的資料
留言
回到頂部