一.高級語言和機器指令中的運算
1,按位運算:符號|按位OR運算;符號&按位AND運算;符號~表示按位NOT運算;符號^按位XOR運算。
實現掩碼操作:通過與給定的一個位模式進行按位與,可以提取所需要的位,對這些位進行“置1” “清0”等。
2,符號||按位OR運算;符號&&表示AND運算;符號!表示NOT運算。
3,移位運算輯移位和算術移位。
邏輯移位:不考慮符號位,把高(低)位移出,低(高)補0.
原碼的移位:原碼算術移位:左移丟1,運算會出錯,右移丟1,會影響精度
補碼的移位:正數中,原碼,補碼,反碼左右移都補0,負數中,原碼左右移補0,補碼左移補0、右移補1,反碼左右移補1。
4,位擴展和位截斷運算
兩種位擴展方式:0擴展和符號擴展。0擴展用于無符號數,符號擴展用于補碼表示的帶符號整數
二.基本運算部件
1,串行進位加法器

串行進方式:n位加法器,X與Y逐位相加,位間進位串行傳送。
只有一個全加器,數據逐位串行送入加法器中進行運算。進位觸發器用來寄存進位信號,以便參與下一次運算。
行進位加法器速度慢的主要原因是進位按串行方式傳遞,高位進位依賴低位進位。
2,并行進位加法器
用n位全加器實現兩個n位操作數各位同時相加,這種加法器稱為并行加法器。并行加法器中全加器的個數與操作數的位數相同。
并行加法器中全加器的位數與操作數的位數相同,可同時對操作數的各位相加。
計算機內部大多采用兩級或多級先行進位加法器。
3,帶標志加法器
三.定點數運算
1,補碼加減法
運算表達式
判斷是否溢出
2,原碼加減運算
比較兩個操作數的符號,對加法實行“同號求和,異號求差”,對減法實行“異號求和,同號求差
求和時,數值位相加,若最高位產生進位則結果溢出
求差時,被加數數值位加上加數數值位的補碼
3,移碼加減運算
移碼的和、差等于和、差的補碼。
4,原碼乘法運算

原碼一位乘法
(1)確定乘積的符號位。由兩個乘數的符號異或得到。
(2)計算乘積的數值位,乘積的數值部分分為兩個乘數的數值部分之積。
原碼二位乘法
原碼兩位乘是用兩位來決定新的部分積的形成,形成4種狀態
5,補碼乘法運算

補碼一位乘法
(1)將符號位和數值位合在一起參與運算,直接得出用補碼表示的乘積,且正數和負數同等對待稱為布斯乘法
(2)符號位參與運算,運算的數均以補碼表示,被乘數 x 取雙符號位,乘數 y 取單符號位
(3)運算規則
補碼二位乘法
6,快速乘法器
7,原碼除法運算
先進行判斷:除數是否為0,商是否為0,是否溢出或為不確定的值NaN
手算除法基本要點
與乘法運算一樣,要將符號位和數值位分開來處理。商的符號為相除兩數符號的異或值,商的數值為兩數絕對值之商。
單精度除法,其商的位數一定不會超過n位,因此不會發生溢出;雙精度除法,商的位數可能多于n位,因此,可能發生溢出
恢復余數除法
不恢復余數除法
(1)“正、1、減、負、0、加”:若中間余數為正數,則上商為1,下次做減法;若中間余數為負數,則上商為0,下次做加法
8,補碼除法運算
補碼恢復余數除法
采用“夠減則上商為1,不夠減則上商為0”的上商方式,因此,最后若商為負值,則需要“各位取反,末位加1”來得到真正的商
補碼不恢復余數除法
被除數與除數同號,被除數減去除數;被除數與除數異號,被除數加上除數。余數與除數同號,商上1,余數左移一位減去除數;余數與除數異號,商上0,余數左移一位加上除數。(注意:余數左移加上或減去除數后就得到了新余數。直到商的位數滿足要求為止。
四.浮點數運算
1,浮點數加減運算
對階、尾數運算、規格化、舍入處理、溢出判斷
2,浮點數乘除運算
先進行判0處理,規格化操作和溢出判斷
(1)乘法運算:尾數相乘,指數相加;尾數規格化;尾數舍入處理;溢出判斷浮點數除法運算
(2)除法運算:尾數相除,階相減;尾數規格化;尾數舍入處理;溢出判斷
浙公網安備 33010602011771號