原碼、反碼、補碼、移碼


  • 原碼:正數是其二進制本身;負數是符號位為1,數值部分取X絕對值的二進制。
  • 反碼:正數的反碼和原碼相同;負數是符號位為1,其它位是原碼取反。
  • 補碼:正數的補碼和原碼,反碼相同;負數是符號位為1,其它位是原碼取反,未位加1。(或者說負數的補碼是其絕對值反碼未位加1)
  • 移碼:將符號位取反的補碼(不區分正負)

舉個例子以一個字節8位說明:

編碼 10810(sbyte) -10810(sbyte)
原碼 01101100 11101100
反碼 01101100 10010011
補碼 01101100 10010100
移碼 11101100 00010100

注:加粗的數字為符號位,補碼在線工具
  移碼表示法是在數X上增加一個偏移量來定義的,常用來表示浮點數中的階碼,所以是整數。如果機器字長為n,規定偏移量為2(n-1)。若X是整數,則X=2^(n-1)+X
例子:假設字長為8,以上面的108為例
108=10000000+01101100=11101100
-108=10000000+10010100=00010100


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM