電腦科學導論學習筆記(四)

2021-09-30 18:35:56 字數 2383 閱讀 1057

引言:第三章中,我們了解了計算機都可以儲存哪些型別的資料。本章將講述如何在這些儲存在計算機的資料上進行運算。資料上的運算可以分為三大類:算術運算、位移運算和邏輯運算。

邏輯運算是指那些應用於位模式中的乙個二進位制位,或者兩個模式中相應的兩個二進位制位的相同基本運算。這意味著我們可以在位層次模式層次上定義邏輯運算。

乙個位可能使0或1,可以假設0代表邏輯假,1代表邏輯真,我們可以應用布林代數中定義的操作去操縱二進位制位。本節介紹4種運算:非(not),與(and),或(or),異或(xor)。

非、與、或分別對應c語言中的「!」,「&&」,「||」

異或表示:如果輸入相同,則輸出為0;如果輸入不同,則輸出位1。

相同的4個運算子可以被應用到n位模式。效果對於not來說,是把運算子應用到每一位;對其餘三種運算來說,把運算應用到相應的位對。

例如: 10011000 and 00101010 = 00001000

not 10011000= 01100111

4種邏輯運算可以用於修改位模式。

(1)求反

not運算子唯一的應用就是求反。對模式應用此運算子把0變成1,把1變成0.

(2)復位

與運算的乙個應用就是把位模式中指定的位進行復位(置0)。這種情況下第二個輸入叫做掩碼。掩碼中的0位對第乙個輸入中相應的位進行復位。掩碼中的1位使得第乙個輸入中的相應的位保持不變。

(3)置位

或運算的乙個應用就是把位模式中指定的位進行置位(置1)。此時的掩碼中,1位對第乙個輸入中的位進行置位,0位使得第乙個輸入中相應的位保持不變。

(4)反轉

異或運算的乙個應用就是把指定的位進行反轉。此時掩碼中的1位對第乙個輸入中的相應的位進行反轉,0位使得第乙個輸入中相應的位保持不變。

移位運算移動模式中的位,改變位的位置。能向左或向右移動。我們把移位運算分為兩大類:邏輯移位運算和算術移位運算。

邏輯移位運算應用於不帶符號位的數的模式。原因是移位運算可能會改變量的符號。

1.邏輯移位

邏輯右移運算把每一位向右移動乙個位置。在n位模式中,最右位被丟棄,最左位填0。同理邏輯左移丟棄最左位,最右位填0。

2.迴圈移位

迴圈移位對位進行移位,沒有位丟棄或增加。迴圈右(左)移將每一位都向右(左)移動移位,最右(左)位填到最左(右)位。

算術移位運算假定位模式使用二進位制補碼格式表示的帶符號的整數。算術右移被用來對整數除以2;算術左移被用來對整數乘以2。這些運算不改變符號為。算術右移保留符號位,但同時也把它賦值,放入相鄰的右邊的位中。算術左移丟棄符號位,接受它右邊的位作為符號位。如果新的符號為與原先的相同,那麼運算成功;否則發生上溢或下溢,結果使非法的。

算術運算包括加減乘除,適用於整數和浮點數。

本章只討論整數的加法和減法。

1.二進位制補碼整數的加減法

二進位制補碼的優點是,加法和減法之間沒有區別。遇到減法運算時,計算機只簡單地把它轉變成加法,但要為第二個數求二進位制的補。

a-b=a+(b`+1)      b`+1表示b的補碼

演算法過程如下:

1)如果運算是減法,取第二個整數的補碼;否則,轉下一步

2)整數相加

2.符號加絕對值整數的加減法

流程如下:

1)檢查運算,如果是減法,那麼改變第二個整數b的符號

2)對兩整數的符號應用xor運算,如果結果s是0,意味著符號相同;否則符號不同

3)如果符號相同,rm=±(am+bm),(rm,am和bm表示r,a和b的絕對值),結果的符號與a、b都相同。此時應考慮,相加結果可能會發生上溢,需要報告並終止過程。

4)如果符號不同,rm=±(am-bm),則從a中減去b,然後對符號進行判斷。相減的過程為取第二個絕對值的二進位制補碼然後相加。結果的符號是較大絕對值的整數的符號。

以浮點數格式儲存的實數的加法和減法被簡化為小數點對齊後以符號加絕對值格式(符號和尾數的組合)儲存的兩整數的加法和減法。過程如下:

1)如果兩數中任意乙個為0,結果為另乙個數,結束

2)如果運算時減法,那麼改變第二個數b的符號來模擬加法

3)通過在尾數中隱含的1和增加指數,將兩個數去規範化

4)然後統一指數,即增加較小的指數,移位相應的尾數,直到兩個數具有相同的指數。

5)現在把每個數的符號和尾數的組合看成乙個符號加絕對值格式的整數。兩個整數相加

6)最後,再次規範化數

電腦科學導論 四

邏輯運算 位層次的邏輯運算 not and or xor 簡單的取反 輸入數都為1判斷 輸入數有乙個1判斷 輸入數不等判斷。模式層次的邏輯運算 not 簡單的取反 and 使指定數復位 高位0,低位1使高位變為0,低位不變 用0即取0,1則不改變,適用於要使某幾位變為0 or 使指定數置位 高位1,...

電腦科學導論學習筆記

定義乙個基於圖靈模型的計算機。圖靈模型假設各種各樣的運算都能夠通過一種特殊的機器來完成,圖靈機的模型是基於各種運算過程的。圖靈模型把運算的過程從計算機器中分離開來,相對於之前的專業機器既包括計算又包括實際功能 縫紉機,票數計算 定義乙個基於馮 諾伊曼模型的計算機 馮 諾伊曼模型定義了計算機的組成,它...

電腦科學導論筆記

第三章 資料儲存 1.整數的儲存方式 無符號表示法 正常儲存,可以表示2的n次方 1 二進位制補碼表示法 負數的補碼就是對反碼加1,而正數不變 也是分成兩半,常規交換 0000 0001 0010 0011 0010 0011 0000 0001 0 1 2 3 2 1 0 1 符號加絕對值表示法 ...