1. 程式人生 > >原碼、反碼、補碼之間的轉換

原碼、反碼、補碼之間的轉換

寫在前面:

  在日常生活中人們使用的是十進位制。“正如亞里士多德早就指出的那樣,今天十進位制的廣泛採用,只不過是我們絕大多數人生來具有十個手指頭這個解剖學事實的結果。儘管在歷史上手指計數(5,10進位制)的實踐要比二或三進位制計數出現的晚”。而計算機只能識別由0和1組成的二進位制數,其最高位是表示正負的符號位。即正數的原碼是以0開頭,而負數的原碼是以1開頭。

原碼、補碼、反碼之間的轉換:

  • 正數的原碼、反碼、補碼是一致的。(例如:2的原碼:0000 0010,那麼其反碼和補碼都是0000 0010)
  • 負數的反碼顧名思義,是除了符號位與原碼一致,其餘位都與原碼相反。(例如:-2的原碼是1000 0010,那麼其反碼是1111 1101),負數的補碼則是在其反碼的基礎上加1。(例如:-2的反碼是1111 1110)