定點數編碼表示


原碼表示法

直接將數的二進制進行存儲,有符號數需要在首位添加符號位

通常不采用原碼表示的原因

  • 原碼的0表示不唯一,+0為0000;-0為1000(假設長度為4位)
  • 原碼進行加減法運算方式不統一
  • 需要額外對符號位進行處理,不利於硬件設計
  • 當a<b時,a-b實現比較困難
    現代計算機整數一般都用補碼表示,

移碼表示法

移碼是將一個數值加上一個偏置常數,通常當編碼位數為n的時候,取偏移常數為\(2^{n-1}\)或者\(2^{n-1}-1\)
當n=4時,移碼表示數\(E'=E+2^3\)
-8(+8)~0000B
-7(+8)~0001B
0(+8)~1000B
0的移碼表示唯一
當偏置常數為\(2^{n-1}\)時,移碼和補碼只有第一位不同
移碼用來表示浮點數的階

為什么要用移碼表示浮點數的階

  • 便於浮點數加減運算時的對階操作

補碼-模運算

在一個模運算系統中,一個數與它除以“模”后的余數等價。
在模12系統中:10-4=10+8(mod 12)
稱8是-4對12的補碼
結論一:一個負數的補碼等於模減該負數的絕對值
結論二:對於某一確定的模,某數減去小於模的另一數,總可以用該數加上另一數負數的補碼來代替。

一個負數補碼等於將對應正數補碼(正數補碼即為本身)各位取反再加一

如-0000 1000補碼為1111 1000


免責聲明!

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



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