機器數的原碼、反碼和補碼
發布時間:2016/7/4 22:02:20 訪問次數:1822
1.原碼
將機器數真值形式中的最高位用“0”表示“+”號,用“l”表示“-”號,這種數DSS60-0045B碼形式叫做原碼。當X為正數時,lX]原=Xo當X為負數時,將|X|數值部分絕對值前面的符號位上寫成“1”即可。如:
X1=69 [X刂原=01000101
X2=ˉ69 [X2]原=11000101
原碼表示法比較直觀,其數值部分就是該數的絕對值,而且與真值、十進制數的轉換十分方便。但是用原碼進行加減運算時,因符號位不能與數值部分一起參加運算,而必須利用單獨的線路確定符號位,造成運算電路變得很復雜,由此提出了反碼和補碼的概念。
2.反碼
如果是正數,其反碼和原碼的形式相同;如果是負數,其反碼為原碼的數值部分按位取反,符號位保持不變。如:
X1=69 [X1]反=01000101
X2=ˉ69 [X2]反=I0111010
在反碼中,數值0有兩種形式,對于8位數來說:
[+0]反=00000000 [-0]反=11111111
3.補碼
補碼是根據補數的概念引入的,假定現在的時間為6點整,而手表卻是8點整。手表校準的方法有兩種,一種是倒撥2小時,可以理解為減法運算(”),一種是正撥10小時,可以理解為加法運算(Hω,那么對校準手表來講,減2與加10是等價的,也就是說,減2可以用加10來實現。這是因為8加10等于18,然而手表最大只能表示12,當大于12時進位自然丟失,18減去12就只剩6了。這說明減法在一定條件下,是可以用加法來代替的。在以上例程中“12”稱為“模”,“H0”稱為“9”對模12的補數。假設X為刀位二進制數,則其模為/,因此X的補碼可表示為
[X]補=2″+X
對于二進制數的補碼求解可分為正數和負數分別討論。
1.原碼
將機器數真值形式中的最高位用“0”表示“+”號,用“l”表示“-”號,這種數DSS60-0045B碼形式叫做原碼。當X為正數時,lX]原=Xo當X為負數時,將|X|數值部分絕對值前面的符號位上寫成“1”即可。如:
X1=69 [X刂原=01000101
X2=ˉ69 [X2]原=11000101
原碼表示法比較直觀,其數值部分就是該數的絕對值,而且與真值、十進制數的轉換十分方便。但是用原碼進行加減運算時,因符號位不能與數值部分一起參加運算,而必須利用單獨的線路確定符號位,造成運算電路變得很復雜,由此提出了反碼和補碼的概念。
2.反碼
如果是正數,其反碼和原碼的形式相同;如果是負數,其反碼為原碼的數值部分按位取反,符號位保持不變。如:
X1=69 [X1]反=01000101
X2=ˉ69 [X2]反=I0111010
在反碼中,數值0有兩種形式,對于8位數來說:
[+0]反=00000000 [-0]反=11111111
3.補碼
補碼是根據補數的概念引入的,假定現在的時間為6點整,而手表卻是8點整。手表校準的方法有兩種,一種是倒撥2小時,可以理解為減法運算(”),一種是正撥10小時,可以理解為加法運算(Hω,那么對校準手表來講,減2與加10是等價的,也就是說,減2可以用加10來實現。這是因為8加10等于18,然而手表最大只能表示12,當大于12時進位自然丟失,18減去12就只剩6了。這說明減法在一定條件下,是可以用加法來代替的。在以上例程中“12”稱為“模”,“H0”稱為“9”對模12的補數。假設X為刀位二進制數,則其模為/,因此X的補碼可表示為
[X]補=2″+X
對于二進制數的補碼求解可分為正數和負數分別討論。