補碼加法可帶符號位參加運算,結果的正負或是否溢位易於判斷。
例如: 已知兩整數分別為85和32, 用補碼錶加法求 85+32、 85-32 的值
解:約定機器數8位字長
x =85d =0101 0101b
[x]補 =0101 0101b
y =32d =0010 0000b
[y]補 =0010 0000b
[-y]原 =1010 0000b
[-y]反 =1101 1111b
[-y]補 =1110 0000b
補碼相加:
[y]補 =0010 0000b(+
---------------------------
[x+y]補 =0111 0101b
x+y =0111 0101b = 117d
[-y]補 =1110 0000b(+
10011 0101b
Cs⊕Cp = 1⊕1 = 0 ,無溢位
(Cs是符號位的進位,Cp是最高數值位的進位,⊕表示異或)
[x-y]補 =0011 0101b (最高位的1自動丟失)
x-y =0011 0101b =53d
補碼加法可帶符號位參加運算,結果的正負或是否溢位易於判斷。
例如: 已知兩整數分別為85和32, 用補碼錶加法求 85+32、 85-32 的值
解:約定機器數8位字長
x =85d =0101 0101b
[x]補 =0101 0101b
y =32d =0010 0000b
[y]補 =0010 0000b
[-y]原 =1010 0000b
[-y]反 =1101 1111b
[-y]補 =1110 0000b
補碼相加:
[x]補 =0101 0101b
[y]補 =0010 0000b(+
---------------------------
[x+y]補 =0111 0101b
x+y =0111 0101b = 117d
補碼相加:
[x]補 =0101 0101b
[-y]補 =1110 0000b(+
---------------------------
10011 0101b
Cs⊕Cp = 1⊕1 = 0 ,無溢位
(Cs是符號位的進位,Cp是最高數值位的進位,⊕表示異或)
[x-y]補 =0011 0101b (最高位的1自動丟失)
x-y =0011 0101b =53d