4- 二進制算術運算
當兩個數碼分別表示兩個數量大小時,它們可以進行數量間的加、減、乘、除等運算。這種運算稱為算術運算。
因電腦和數字設備普遍采用二進制運算,本節只探討二進制的算術運算。
1. 二進制算術運算的特點
二進制算術運算和十進制算術運算規則基本相同,區別是“逢二進一”。
由上圖可見二進制的乘法和除法有以下特點:
二進制的乘法運算可以通過若干次的“被乘數(或0)左移1位”和“被乘數(或0)與部分積相加”這兩種操作完成;
二進制數的除法運算能通過若干次的“除數右移1位”和“從被除數或余數中減去除數”這兩種操作完成。
如果我們能設法將減法操作轉化為某種形式的加法操作,那么加、減、乘、除運算就全部可以用"移位"和"相加"兩種操作實現了。為了解決這個問題,計算機引入了原碼、反碼和補碼的概念。
2. 原碼、反碼、補碼和補碼運算
二進制數的正、負表示方法通常采用的是在二進制數的前面增加一位符號位。這種形式的數稱為原碼。符號位為0表示這個數是正數,符號位為1表示這個數是負數。其余各位表示數值。
在做減法運算時,如果兩個數是用原碼表示的,則首先需要比較兩數絕對值的大小,然后以絕對值大的一個作為被減數、絕對值小的一個作為減數,求出差值,并以絕對值大的一個數的符號作為差值的符號。
這個操作過程比較麻煩,而且需要使用數值比較電路和減法運算電路。如果用兩數的補碼相加代替上述減法運算,則計算過程中就無需使用數值比較電路和減法運算電路了,從而使減法運算器的電路結構大為簡化。
補碼的原理可參考其他電子書籍,正負數的反碼和補碼的計算原則如下:
反碼:正數的反碼等于原碼,負數的反碼:符號位不變,以下各位按位取反。
補碼:正數的補碼等于原碼,負數的補碼:符號位不變,以下各位按位取反,最后加1。一個數補碼的補碼即為其原碼。
例:帶符號位二進制數00011010(+26)、10011010(-26)、00101101(+45)、和10101101(-45)的反碼和補碼。
在計算機系統中,數值一律用補碼來表示(存儲)。
補碼的優點主要有:
使符號位能與數值位部分一起參加運算,從而簡化運算規則;
使減法運算轉換為加法運算,從而簡化計算機中運算電路的設計;
兩個用補碼表示的數相加時,如果最高位(符號位)有進位,則進位被舍棄;
補碼轉換為對應的十進制數時正負數規則一樣 ;
0的補碼是唯一的。如0的5位補碼是00000。