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