2013年3月28日 星期四

數字系統及數字系統的轉換

 

回上一層數字系統及數字系統的轉換

電腦內部資料是以0和1來儲存的,這種只有0和1兩種狀態的系統,相當於二進位系統;本節將就二進位系統探討其轉換、加、減、AND及OR運算。

1.電腦常用數字系統

  1. 十進位制(decimal number system):十進位制是一種滿10進位,基底為十的數字系統,由0、1、2、3、4、5、6、7、8、9等十個數字組成,為日常生活中普遍使用的數制。例127810,其基底通常被省略,亦即1278。
  2. 二進位制(Binary number system):二進位制是一種滿2進位,基底為二的數字系統,由0和1兩個數字所組成,為電腦最基本的數字系統。通常表示時會在數字前加一"B"以便於識別,例B1101或1102
  3. 八進位制(octal number system):八進位制為逢8進位的數字系統,由0、1、2、3、4、5、6、7所組成,通常於數字前加"&"或"&O"字母符號識別,例如&O467或4568
  4. 十六進位制(hexadecimal number system):十六進位制為逢16進位的數字系統,由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F所組成,其中A表十進位的10,B表 11,依次類推,其識別方式是於數前加"&H",例如&H123C,&HA28。或123C16
表一 各數字系統對照表

2.數字系統的轉換

(1) 十進位數轉換成二進位數
方法:
  1. 整數部份:將十進位整數連除以2,直到商數為0,再從下往上依次取出餘數。
  2. 小數部份:將十進位小數連乘以2,直到適當位數為止,從上往下依序取其整數
【例】43.62510        2
解:(a)整數部份
 (b)小數部份
(2).二進位數轉換成十進位數
方法:將2進位每一位數分別乘以其位值, 再把結果加起來即可。
【例】 101011.1012=       10
解:二進位數各位值如下:

3.二進位數的邏輯運算

邏輯運算是數學家布林(Boolean)根據數位邏輯閘所發展出來的,茲擇要列表如下:
表二 邏輯符號及相關說明
根據上表做一些練習如下:
解:

4.二進位數的算術運算

二進位數的算術運算以加、減、乘、除的四則運算,它的作法和十進位相近,只是二進位數在加法時滿2進1,在減法時借1當作2,其餘相同,列表如下:

5.補數的運算

接著,從邏輯電路的觀念來了解一下電路是如何進行相加的。首先寫出「被加數+加數=和、進位」的真值表如下圖(a)所示,其中和的真值表是XOR閘的關係,進位則是AND的關係,進而劃出電路圖如下圖(c)所示。
被加數A加數B和S進位C
0000
0110
1010
1101
(a)真值表
此圖是一個最基本的加法電路,必須要有兩個這種電路才能執行一個完全的加法(包括上一個的進位也必須加進來),在電腦內為了簡化電路,因此是以加法器為基本運算單元,減法時以加補數方式進行,乘法則是連加、除法是連加補數,都是以加法方式完成的,何謂補數呢?補數又如何來完成減法呢?
所謂補數(Complement)是指兩個數字加起來等於某數時,則稱該二數互為某數的補數;例如3的10補數為7,同理7的10補數為3。而補數有助減法運算用加法器來執行。例如4的十進位補數為6,故:
對二進位而言有1補數系統和2補數系統兩個。
(1) 1的補數系統(1's Complement):1補數系統是指兩數之和為1,則此兩數互為1的補數,亦即0和1互為1的補數。換言之,欲求得二進位數的1補數,只需將0變成1,1變成0即可;例如10102 的1補數為01012
(2) 2的補數系統(2's Complement):2補數系統的求法是先取該數的1補數,再加1即可,如下例:
【例】求0100之2補數
解:
以2補數法求兩數相減的步驟如下:
  1. 取減數的2補數。
  2. 和被減數相加。
  3. 相加後會產生有無溢位問題,再分別處理:
  4. 若沒有溢位,表示其結果為負值,再取此結果的2補數,才能得到正確的答案。
  5. 若發生溢位,表示其結果為正值,則將此溢位捨棄,即得正確的答案。
【例】以2補數求1101-0100 =      2
解:

沒有留言:

張貼留言