原碼 反碼 補碼

題記

計算機存儲數(shù)值方式是通過原碼,反碼,補碼來編碼的。突然寫這個原碼 反碼 補碼 感覺很奇怪。
由于今天開始補習(xí)一下面試的知識,做了一套阿里巴巴的面試題,第一道題就是問關(guān)于求-7的補碼。查閱資料后,我覺得有必要寫下來,以后就不會忘記。

基礎(chǔ)知識


原碼

原碼是計算機和人最容易理解的表達。原碼是符號位和真實值的絕對值來表示的。對于一個二進制數(shù)來說,原碼的第一位是符號位,其余部分位表示是數(shù)值。我拿-7的8位二進制舉例說:
-7 的二進制10000111,那么-7的原碼就是10000111。

反碼

  • 正數(shù)的反碼就是其本身
  • 負(fù)數(shù)的反碼就是保持符號位不變,數(shù)值位的1變?yōu)?,0變?yōu)?(1-->0 ,0-->1)
    我還是那7和-7來舉例。
    7 的原碼是00000111。7的反碼就是 00000111
    -7的原碼是10000111。-7的反碼就是11111000

補碼

  • 正數(shù)的補碼也是其本身
  • 負(fù)數(shù)的補碼是:在原碼的基礎(chǔ)上,保持符號位不變,數(shù)值位取反再加1。
    7 的補碼是00000111,-7的補碼是11111001。

總結(jié)


正數(shù)的原碼,反碼,補碼是一樣的。
負(fù)數(shù)的原碼,反碼,補碼都一樣,但是符號位都是一樣,反碼和補碼的區(qū)別在于補碼在最后一位多加1。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容