負數表示法

負數表示法

在十進制數中,可以在數字前面加上“+”、“一”號來表示正、負數,顯然數字電路不能直接識別“+”、“一”號。因此,在數字電路中把一個數的最高位作為符號位,並用0表示“+”號.用1表示“一”號,像這樣符號也數位化的二進制數稱為機器數。原來帶有“+”、“一”號的數稱為真值。 對於負數,根據需要的不同,有原碼、反碼、補碼三種表示方法。

原碼

負數表示法 負數表示法
負數表示法 負數表示法

原碼也稱“符號——幅度碼”,它的尾數部分代表數的絕對值(即幅度大小),符號位代表數的正負號, 是代表正數, 時代表負數,例如x=0.011表示的是+0.375,x=1.011表示的是一0.375。

原碼的優點是乘除運算方便.以兩數符號位的邏輯加就可簡單決定結果的正負號,而數值則是兩數數值部分的乘除結果。但原碼的加減運算則不方便,因為兩數相加,先要判斷兩數符號是否相同,相同則做加法,不同則做減法,做減法時還要判斷兩數絕對值大小。以便用大者作為被減數,這樣增加了運算時間。

負數表示法 負數表示法
負數表示法 負數表示法

在原碼錶示,“零”有兩種表示方法。例如b=3時,0.000及1.000都表示零,故(b+1)位字長.只能表示( )個數,即表達 之間的數。

補碼

(1)補碼又稱“2的補碼”。補碼中正數與原碼正數表示一樣。補碼中負數是採用2的補數來表示的,即把負數先加上2.以便將正數與負數的相加轉化為正數與正數相加,從而克服原碼錶示法做加減法的困難。

負數表示法 負數表示法
負數表示法 負數表示法

(2)由於負數的補碼是2一|x|,故求負數的補碼時,實際上要做一次減法,這是不希望的。可以發現,只要將原碼正數的每位取反碼(1 0,0 1),再在所得數的末位加1,則正好得到負數的補碼,這簡稱為對尾數的“取反加1”。

負數表示法 負數表示法
負數表示法 負數表示法

例如求一0.375的補碼錶示,只需將0.375所代表的二進制碼0.011的每一位數都取反碼(1 0,0 1)得到1.100.將此數的末位加1得到1.101,這就是一0.375的補碼錶示。

(3)補碼錶示法可把減法與加法統一起來,都採用補碼加法。例如做減法時,若減數是正數,則將其變為負數的補碼與被減數的補碼相加;若減數是負數.則將其變成正數的補碼與被減數的補碼相加。採用補碼做加法,符號位也同樣參加運算。如果符號位發生進位,則把進位的1去掉就行了。

(4)任何二進制數與其補碼之和等於零(將兩數之和的符號位的進位位忽略不計)。

負數表示法 負數表示法
負數表示法 負數表示法

(5)在補碼錶示中,“零”的表示是唯一的,為0.000(b=3),故(b+1)位字長可表示 個不同的數.即表示從一1~( )之間的數。

負數表示法 負數表示法

(6)由於補碼是“2的補數”,在補碼運算中,當兩數之和等於或大於1,或者小於一l時,則產生溢出。

反碼

(1)反碼又稱“1的補碼”。和補碼一樣,反碼的正數與原碼的正數表示相同。反碼的負數則是將該數的正數表示形式中的所有0改為1,所有l改為0,即“求反”。例如x=一0.375,其正數表達式為0.011,將它的0.1全部顛倒,則得1.100,這就是x=一0.375的反碼錶示。

負數表示法 負數表示法
負數表示法 負數表示法

(2)“零”在反碼中有兩種表示,0.000與1.111。因而(b+1)位字長可表示個不同的數,即表示之間的數。

(3)反碼的減法運算也可轉換成加法運算。反碼在做加法運算時,如果符號位相加後出現進位,則要把它送回到最低位進行相加,即做循環移位與最低位相加。

相關詞條

熱門詞條

聯絡我們