您當前的位置:首頁 > 體育

為什麼規格化浮點數用補碼錶示時尾數不能為1.1000?它的真值不是0.5嗎,符合要求啊?

作者:由 樺遺望 發表于 體育時間:2021-10-05

用補碼錶示負數的時候,尾數的表示範圍為【-1,-(1/2+2^-4)】,它的真值趨近於-0。5但是不等於-0。5 。就補碼錶示負數這個情況比較特殊,無法精準的表示出-0。5 。在補碼錶示負數的情況下,我們規定補碼的負數表現形式為1。0xx的形式,因為這種表示方式便於計算機判斷它是否規格化了。

其餘的三種情況都符合|M|屬於【1/2,1】,可以和雙符號位的規格化一起記憶,與1。1000一樣,11。1000也不是規格化浮點數。

————————————————————

浮點數的尾數

規格化規則

單符號位滿足

原碼

0。1xxx

1。1xxx

補碼

0。1xxx

1。0xxx

雙符號位滿足

原碼

00。1xxx

11。1xxx

補碼(因為浮點數的加減運算都用補碼,雙符號位比單符號位更加利於檢驗,所以雙符號位的補碼形式常用於規格化中)

00。1xxx

11。0xxx

(其實還是蠻好記的,原碼部分第一個數值位都是1,補碼的話符號位和第一個數值位都相反)

標簽: 補碼  規格化  符號  原碼  負數