計算機運算基礎課件_第1頁
計算機運算基礎課件_第2頁
計算機運算基礎課件_第3頁
計算機運算基礎課件_第4頁
計算機運算基礎課件_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機科學導論第2章計算機運算基礎

計算機運算基礎計算機科學導論23計算機運算基礎計算機科學導論數制及其轉換數制是數的進位計數制,是用一組固定的數碼和一套統一的規(guī)則來表示數值的方法。在日常生活中通常用十進制來計數。在計算機內部,一切信息的存取、處理和傳輸均采用二進制計數,為了書寫與表示方便,還引入了八進制計數和十六進制計數。在日常生活中會遇到不同進制的數,如十進制數,逢10進1;一周有七天,逢7進1。而計算機中用的是二進制數,逢2進1。無論哪種數制,其共同之處都是進位計數制。計算機科學導論4

數制及其轉換進位計數制各種數制的共同特點是:數制規(guī)定了每位數上可能有的數碼的個數,以及同一個數碼處于不同位置表示不同的值。這就是數制中除數碼外最重要的兩個概念,即基數(radix)和位權(weight)?;鶖担╮adix):基數是數制所使用數碼的個數。計算機科學導論5進位計數制數碼是數制中表示基本數值大小的不同數字符號。例如,十進制有10個數碼:0、1、2、3、4、5、6、7、8、9。位權(weight)。一個數碼處在不同位置上所代表的值不同。每個數碼所表示的數值等于該數碼乘以一個與數碼所在位置相關的常數,這個常數叫做位權。

數制及其轉換計算機科學導論6計算機中常用的數制十進制(Decimal)。使用0、1、2、3、4、5、6、7、8、9共10個數碼來描述,基數為10,計數規(guī)則是逢10進1。二進制(Binary)?;鶖凳?,只有兩個數碼,即0和1,計數規(guī)則是逢2進1。八進制(Octal)?;鶖凳?,即由0、1、2、3、4、5、6、7共8個數碼組成,逢8進1。十六進制(Hexadecimal)?;鶖凳?6,數碼是0、l、2、3、4、5、6、7、8、9、A、B、C、D、E、F。計數規(guī)則是逢16進1。

數制及其轉換計算機科學導論7

數制及其轉換十進制與二進制、八進制、十六進制對應關系十進制二進制八進制十六進制000011112102231133410044510155611066711177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F(1)在技術上容易實現。(2)運算規(guī)則簡單。(3)可靠性高。計算機科學導論8

數制及其轉換計算機采用二進制的原因采用二進制后用電路的兩個狀態(tài)---開關來表示二進制數,數碼的存儲和傳輸簡單、可靠。位數較多,使用不便;不合人們的習慣,輸入時將十進制轉換成二進制,運算結果輸出時再轉換成十進制數。一個數的十進制表示記為:

dndn-1...d1d0(10) 其中:

dn

∈{1,…,9},n>0 (多位數) dn

∈{0,…,9},n=0(一位數) dn-1,…,d1,d0∈{0,…,9}則該數的值可用下式得出:

dnx10n+dn-1

x10n-1+...+d1x101+d0

x100計算機科學導論9例如:123(10)的值是:1x102+2x101+3x100=100+20+3=123用十進制來表示數值的規(guī)則

數制及其轉換計算機科學導論10非十進制數轉換為十進制數

數制及其轉換

一個數的二進制表示記為:

bnbn-1...b1b0(2) 其中:

bn=1,n>0 bn

∈{0,1},n=0 bn-1,…,b1,b0∈{0,1}則該數的值可用下式得出:

bnx2n+bn-1

x2n-1+...+b1x21+b0x20例如,(2)的值是:1x26+1x25+1x24+1x23+0x22+1x21+1x20=64+32+16+8+0+2+1=123一個數的十進制表示記為:

dndn-1...d1d0(10) 其中:

dn

∈{1,…,9},n>0 dn

∈{0,…,9},n=0 dn-1,…,d1,d0∈{0,…,9}則該數的值可用下式得出:

dnx10n+dn-1

x10n-1+...+d1x101+d0x100例如,123(10)的值是:1x102+2x101+3x100=100+20+3=123計算機科學導論11用二進制來表示數值的規(guī)則

數制及其轉換十進制整數轉換為二進制整數采用輾轉相除法。將123(10)轉換成等值的二進制數:

除以2的商(取整)

余數

123/2=611 61/2=30130/2=15015/2=717/2=313/2=111/2=01自下而上地依次將余數加以匯集,即得到對應的二進制數:(2)。計算機科學導論12數制及其轉換小數呢?二進制數與八進制數、十六進制數將二進制數轉換為八進制數:從右向左,每三位進行一次轉換,即從二進制數的值轉換成等值的八進制數字。反過來怎么轉換?計算機科學導論13

數制及其轉換例:轉換(2)1111011(2)=173(8)1111011(2)=7B(16)將二進制數轉換為十六進制數:從右向左,每四位進行一次轉換,即從二進制數的值轉換成等值的十六進制數字。14計算機運算基礎計算機科學導論計算機中數據的表示計算機是用二進制編碼方式工作的,它無法直接理解人們日常接觸到的信息,需要將信息轉化為二進制編碼的數據,計算機才能進行存儲、傳輸和處理。數的機器碼表示機器數:在計算機中,按照既定的二進制位數(稱為碼長),最左邊的那一位(稱為符號位)用來表示一個整數的正負號:0表示正數,1表示負數。符號位之后的那些位(稱為數值位),用來表示這個整數的絕對值。計算機科學導論15計算機中數據的表示真值:一般書寫中用“+”、“-”來表示數的符號,這樣表示的數稱為真值。數在計算機中的表示計算機科學導論16計算機中數據的表示在計算機中,數可以有三種不同的二進制表示方法(差別在于負數之數值位的表示不同):原碼表示反碼表示補碼表示原碼表示在給定碼長后,根據一個整數的正負填寫符號位,再將這個整數之絕對值的二進制表示,按照數值位的長度在前面補足必要的0后,就得到這個整數的原碼表示。若碼長為8,則123(10)的原碼表示是:

0-123(10)的原碼表示是:

1若碼長為16,則123(10)的原碼表示是:

01011-123(10)的原碼表示是:

11011計算機科學導論17計算機中數據的表示原碼表示的計算公式是:對于整數X,設[X]原是它的原碼表示,n是碼長,則

X 0≤X≤2n-1-1[X]原=2n-1+|X| -(2n-1-1)≤X≤00有兩種原碼表示:當n=8,則[X]原的表示范圍是–127~127。計算機科學導論18計算機中數據的表示反碼表示規(guī)定:一個正整數的反碼表示與其原碼表示相同;一個負整數的反碼表示:對其原碼表示的數值位進行按位變反(按位將1換成0、將0換成1)的結果。例如(若碼長為8): (26)(反)=

(26)(原)=

00011010 (-26)(反)=

(10011010→11100101)計算機科學導論19計算機中數據的表示反碼表示的計算公式是:對于整數X,設[X]反是它的反碼表示,n是碼長,則0也有兩種反碼表示:當n=8,則[X]反的表示范圍是–127~127。

X 0≤X≤2n-1-1[X]反=2n-1-|X| -(2n-1-1)

X≤

0計算機科學導論20計算機中數據的表示補碼表示如果能夠在負數的表示上想辦法,就有可能在計算機中利用二進制加法的部件來實現二進制減法,因為:

a-b=a+(-b)由于乘法可以用加法實現、除法可以用減法實現,因而這是為了用統一的部件來進行二進制數的四則運算。支持這種統一處理的基礎,是計算機中數的補碼表示。計算機科學導論21計算機中數據的表示我們先來看一個例子9999999(汽車上的里程表)計算機科學導論22計算機中數據的表示我們先來看一個例子9999999(汽車上的里程表)0000000123計算機科學導論23計算機中數據的表示在這個例子中,當里程表上的數字是999999.9時,再行進0.1公里,里程表顯示的是000000.0。如果我們只看整數部分:由于999999+1=000000,(從儀表盤上看到的結果),所以從算術運算的角度看,這里999999的作用相當于-1。這就說明,當限制了數據的表示長度時,要得到一個與正整數k對應的負數表示,可以認為:要得到的那個數加上這個正整數之后等于0。我們稱之為求補。在上面的例子中,要得到1的負數表示-1,就是看哪個數加上1后等于0。這個數便是999999。計算機科學導論24Why?計算機中數據的表示回到給定碼長的二進制表示上來:例如,當碼長為8(即數值位數為7),則26(10)=0011010那么,要得到-26(10),就是求一個二進制數c:使得:

c+0011010=0000000這樣的c就是|-26(10)|的二進制表示:

因為:

1100110+)0011010

進位被丟棄計算機科學導論25計算機中數據的表示補碼表示規(guī)定:一個正整數的補碼表示與它的原碼表示相同;一個負整數的補碼表示:符號位為1,數值位是其絕對值的求補結果。對于一個負整數,怎樣求它的補碼表示?一條簡單規(guī)則:對其原碼表示的數值位按位變反后加1。例:當碼長為8,求-26(10)的補碼表示(11100110):原碼表示是:按位變反后:加1

后得到:,即得到其補碼表示。計算機科學導論26計算機中數據的表示補碼表示的計算公式是:對于整數X,設[X]補是它的補碼表示,n是碼長,則0只有一種補碼表示:當n=8,則[X]補的表示范圍是[-128,127]。

X 0≤X≤2n-1-1[X]補=2n-|X| -2n-1

≤X〈0計算機科學導論27計算機中數據的表示計算機中常用的數據表示格式有兩種,一是定點格式,二是浮點格式。所謂定點數和浮點數,是指在計算機中一個數的小數點的位置是固定的還是浮動的。采用定點數表示法的計算機稱為定點計算機,采用浮點數表示法的計算機稱為浮點計算機。計算機科學導論28計算機中數據的表示數值數據的表示假設用一個n位字來表示一個定點數x=x0x1x2…xn-1,其中一位x0用來表示數的符號位,其余位數代表它的量值。計算機科學導論29計算機中數據的表示定點數表示S為尾數的符號位,放在最高一位;E為階碼,緊跟在符號位之后,占m位;M為尾數,放在低位部分,占n位。計算機科學導論30計算機中數據的表示浮點數表示非數值數據,通常指的是字符、字符串、圖形符號、漢字等數據,它們并不用來表示數值的大小,一般情況下也不對它們進行算術運算。計算機科學導論31計算機中數據的表示非數值數據的表示在計算機中怎樣表示符號和英文字母?一種常用的標準表示是ASCII(AmericanStandardCodeforInformationInterchange)碼。ASCII碼用一個字節(jié)來表示一個符號或字母。這個字節(jié)的二進制表示本身是一個數,稱為對應的碼值。常規(guī)ASCII碼將這個字節(jié)的最高位(從左邊數第一位)用做奇偶校驗,其他7位可以表示128種符號和字母。擴展ASCII碼將這個字節(jié)全部用來表示,因此可表示256種符號和字母,其中前128種與常規(guī)ASCII碼相同。目前常用的是擴展ASCII碼。計算機科學導論32計算機中數據的表示在計算機中怎樣表示符號和英文字母?從計算機鍵盤輸入的字母、數字和符號,都被自動轉換成對應的ASCII碼值。例如(采用擴展ASCII碼):字母R:(2),即82(10)或52(16)字母

r:(2),即114(10)或72(16)數字3:(2),即51(10)或33(16)符號%:(2),即37(10)或25(16)計算機科學導論33計算機中數據的表示在計算機中怎樣表示漢字?漢字的種類遠比256種多,何況也不能占用ASCII碼已經使用的碼值。目前采用兩個字節(jié)來表示一個漢字。漢字的編碼規(guī)則還沒有統一。在我國大陸采用的標準是GB2312。國內的計算機都支持漢字輸入與輸出,用戶可用多種方法輸入漢字(如拼音、五筆字形等)。國際組織已經制定了一種Unicode標準,也是采用兩個字節(jié)來表示一個數字、字母、符號或文字,并為中文、日文等都分配了相應的碼段(碼值連續(xù)的區(qū)間),以實現各種文字的國際交流。計算機科學導論34計算機中數據的表示35計算機運算基礎計算機科學導論數據運算與數據存儲數據存儲與數據運算是計算機的基本功能。數據在計算機中以器件的物理狀態(tài)表示,采用二進制數字系統,計算機處理所有的字符或符號也要用二進制編碼來表示。計算機中二進制數的四則運算仿照十進制數的運算規(guī)則,可以做二進制數的加法。用計算機做二進制數的減法:?用計算機做二進制數的乘法:把被乘數累加乘數那么多次即可(例:2*3=2+2+2)。用計算機做二進制數的除法:反復在被除數中減去除數、直到小于除數,減的次數即為商,剩下為余數(例:7/3,7-3-3=1,商為2,余數為1)。

11100+)

110111

16+8+4=2832+16+4+2+1=5564+16+2+1=83 計算機科學導論36數據運算與數據存儲補碼運算規(guī)則已經證明,對于數X和

Y,(X+Y)(補)=X(補)+Y(補),(X-Y)(補)=X(補)+(-Y)(補)兩個數相加減,只需進行包括符號位在內的補碼相加:

(-27)(補)=

(10011011→11100100→11100101)

(-1)(補)=

(10000001→11111110→11111111) (-26)(補)=

(10011010→11100101→11100110)

(-25)(補)=

11100111

(10011001→11100110→11100111)26-27=-1

+)11100101

26-26=0

+)11100110

26-25=1

+)11100111

計算機科學導論37數據運算與數據存儲溢出注意,當運算結果的絕對值超過了數值位的表示范圍時,可能出現溢出(overflow)。例如:

(100)(補)=

(-100)(補)=

(11100100→10011011→10011100)(-100)-100

+)10011100

100+100

+)0110010011001000溢出計算機科學導論38數據運算與數據存儲數據運算算術運算:當兩個二進制數碼表示兩個數量大小時,它們之間可以進行數值運算,這種運算稱為算術運算二值邏輯:只有兩種對立狀態(tài)的邏輯關系邏輯運算:當兩個二進制數碼表示不同的邏輯狀態(tài)進行的運算計算機科學導論39數據運算與數據存儲邏輯運算利用邏輯運算可以進行兩個數的比較,或者從某個數中選取某幾位等操作。計算機中的邏輯運算主要包括邏輯非、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論