原碼,反碼與補碼實例分析

總結:

1.正數的原碼、反碼、補碼是一致的;

2.負數的補碼是反碼加1,反碼是對原碼按位取反,只是最高位(符號位)不變;

3.計算機數字運算均是基於補碼的。

例如:
127的補碼爲 0111 1111
-127的補碼爲 1000 0001
最高位爲符號位。

計算機使用補碼計算的好處:
如果計算機內部採用原碼來表示數,那麼在進行加法和減法運算的時候,需要轉化爲兩個絕對值的加法和減法運算;

計算機既要實現加法器,又要實現減法器,代價有點大,那麼可不可以只用一種類型的運算器來實現加和減的遠算呢?
可以,那就是用補碼來統一加減法運算。
我們以 5+3 和 5-3 爲例子來說明問題。
兩個正數相加,補碼與原碼一樣,正常的進行二進制加法即可。
5-3,則分別求5 、(-3)的補碼,然後進行加法,對於溢出的高位捨棄即可。
在這裏插入圖片描述
補充:

已知一個數的補碼,求原碼的操作其實就是對該補碼再求補碼。
正整數的原碼、反碼和補碼是一樣的,即看到符號位(第一位)是0,就可以照着寫出其他兩種碼。所以已知正數的補碼,求其原碼,兩個數是一樣的。
補碼轉換爲原碼:(對負數而言)符號位不變,數值位按位取反,末位再加1。即補碼的補碼等於原碼。

負數求補碼的簡單方法則是:
左右找1,1不變,中間取反。這句話的具體解釋,就是找到該補碼的左邊和右邊的第一個1,然後左邊和右邊的第一個1都不變,再把這兩個1中間的數都取反,就得到其原碼了。

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