求一個數的相反數的補碼

1.已知8位二進制表示的整數X的補碼爲10011011,則-X的補碼的二進

制編碼爲( 01100101 )。

 

解析:已知x和-x的反碼是互爲相反的,所以已知x的補碼,[x]反 = [x]補  - 1,

(x爲負數)

那麼-x(-x爲正數)的 補碼爲[-x]補  = [-x]反   = -([x]補  - 1) = -[x]補 + 1

 

先各位取反,0變成1,1變成0。然後最低位加一。

 

要是這樣想:

給定一個正數的補碼,怎麼求他的相反數的補碼?

 

解析:正數的原,反,補碼相同。

他的相反數的原碼是修改符號位(最高位)

反碼是除了符號位,其餘各位按位取反,

補碼是反碼+1

 

So,這個過程就每位按位取反,然後加1

 

問:給定一個負數的補碼,怎麼求他的相反數的補碼?

解析:那自然是上過程逆過程:

先減一,在按位取反

 

見上過程,即爲按位取反,再加一

 

X=10011011 -X=01100101 -2X=(-X左移一位補零,多的那位忽略)11001010;

1/2 X=11001101(看X,右移一位原來第一位是什麼現在還是什麼) ;     -1/2X=00110010(同理,看-X)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章