天天看點

計算機組成原理---計算機的運算方法

計算機中參與運算的數有兩大類:無符号數和有符号數。

計算機中的數放在寄存器中,寄存器的位數稱為機器字長。

機器字長、存儲字長、指令字長。

原碼、補碼、反碼、移碼。

引入補碼的概念是為了消除減法運算。

原碼求補碼就可以避免減法運算。

原碼除符号位外,每位求反,末位加1求補碼。

三種機器數:原碼、反碼、補碼。

三種機器數的最高位均為符号位。符号位和數值部分之間可用“.”(對于小數)或“,”(對于整數)隔開。

當真值為正時,原碼、補碼和反碼的表示形式相同,即符号位用“0”表示,數值部分與真值相同。

當真值為負時,原碼、補碼和反碼的表示形式不同,但其符号位都用“1”表示,而數值部分有這樣的關系,補碼是原碼的“求反加1”,反碼是原碼的“每位求反”。

人們很難從補碼的形式上直接判斷其真值的大小。

移碼就是在真值上加一個常數2的N次方。在數軸上移碼所表示的範圍恰好對應于真值在數軸上的範圍向軸的正方向移動2的N次方個單元。

在計算機中,小數不用專門的器件表示,而是按約定的方式标出,共有兩種表示小數點的存在,即定點表示和浮點表示。

定點數和浮點數的比較:

1、當浮點機和定點機中數的位數相同時,浮點數的表示範圍比定點數大的多。

2、當浮點數為規格化數時,其相對精度比定點數高。

3、浮點數運算要分階碼部分和尾數部分,而且運算結果都要求格式化,故浮點運算步驟比定點運算步驟多,運算速度比定點運算的低,運算線路比定點運算的複雜。

4、在溢出的判斷方法上,浮點數是對規格化數的階碼進行判斷,而定點數是對數值的本身進行判斷。

浮點數在表示範圍、數的精度、溢出處理和程式程式設計方面均優于定點數。

定點數在運算規則、運算速度及硬體成本方面優于浮點數。

對有符号數的移位稱為算術移位。

機器數為正時,不論是左移還是右移,添補代碼均為0.

由于負數的原碼數值部分與真值相同,故在移位時隻要使符号位不變,其空位均添加0即可。

由于負數的反碼各位除符号位外與負數的原碼正好相反,故移位後添的代碼應與原碼相反,即全部添1。

分析任意負數的補碼可發現,當對其由低位向高位找到第一個“1”時,在此“1”左邊的各位均與對應的反碼相同,而在此“1”右邊的各位(包括此“1”在内)均與對應的原碼相同。故負數的補碼左移時,因空位出現在低位,則添補的代碼與原碼相同,即添“0”;右移時因空位出現在高位,則添補的代碼應與反碼相同,即添“1”。

算術移位和邏輯移位的差別

有符号數的移位稱為算術移位,無符号數的移位稱為邏輯移位。

現代計算機中都采用補碼作加減法運算。

不論是作加法還是減法,隻要實際參加操作的兩個數(減法時即為被減數和“求補”以後的減數)符号相同,結果又與原操作數的符号不同,即為溢出。

乘法運算

分析筆算乘法、筆算乘法的改進、原碼乘法、補碼乘法

除法運算

分析筆算除法、原碼除法、補碼除法

浮點運算所需的硬體配置

現代計算機可把浮點運算部件做成獨立的選件,或稱協處理器。

算術邏輯單元(ALU):核心是加法器和寄存器。

1、ALU電路

2、快速進位鍊

并行加法器

串行加法器

并行進位鍊

單重分組跳躍進位

雙重分組跳躍進位

繼續閱讀