補碼(Two's complement)、反碼(Ones' Complement)、原碼(Sign Magnitude):
注意,補碼和反碼中,撇號的位置不同。
術語補碼來源於這樣一個情況,對於非負數x,我們用2ⁿ - x(這里只有一個2)來計算-x的n位表示;
術語反碼來源於這樣一個屬性,我們用[111...1] - x(這里有很多個1)來計算-x的反碼表示。
原碼、反碼、補碼規則編碼的二進制形式的有符號數和其實際值的轉換公式:
假設有一個有符號的二進制的數據: ,則其所表示的實際值為:
原碼:
反碼:
補碼:
定點小數
定點小數即純小數,小數點的位置固定在最高有效數位之前、符號位之后,如圖1所示。定點小數的小數點位置是隱含約定的,小數點並不需要真正地占據一個bit。
圖1 定點小數格式
當 Xs = 0 時,該小數為正值,其原碼和補碼表示的形式相同。
其中,
⑴ 絕對值最大的正小數為:
其實際值等於(通過移項及合並同類項,可知該等式成立):
⑵ 絕對值最小的正小數為:
其實際值等於:
以8bit數為例,最大正小數為 0.111 1111 = 1 - 2⁻⁷;最小正小數為 0.000 0001 = 2⁻⁷
當 Xs = 1 時,該小數為負值,有原碼和補碼兩種表示形式(以下形式包含Xs位)。
⑴ 絕對值最大的負小數
① 原碼表示
② 補碼表示
⑵ 絕對值最小的負小數
① 原碼表示
② 補碼表示
可見,定點負小數的原碼表示范圍為: -(1 - 2⁻ⁿ) ~ -2⁻ⁿ;其補碼表示范圍為:-1 ~ -2⁻ⁿ。且n值越大,精度越高。
//參考
原文鏈接:https://blog.csdn.net/AaricYang/article/details/87882868
原文鏈接:https://blog.csdn.net/AaricYang/article/details/87882868