前言
爲了方便統一表示整數、零和負數,常用原碼、反碼、補碼來表示一個二進制數。
此文章僅討論原碼、反碼、補碼的計算方法,不涉及相應的概念。
如果文章內容有誤,可在評論區指出。
一、原碼
[1]. 定點小數
X爲一個二進制數
當X在 (0,1) 之間時,X的原碼:X去掉小數點,去掉正號
當X在 (-1,0] 之間時,X的原碼:在X整數部分+1後,去掉小數點,去掉負號
【例】X= +0.1011
[X]原=01011
【例】X= -0.1011
[X]原=11011
[2]. 整數
X爲一個二進制數
當X>0時,X的原碼:X前面添0,去掉正號
當X<0時,X的原碼:X前面添1,去掉負號
【例】X= +10101
[X]原=010101
【例】X= -10101
[X]原=110101
二、反碼
[1]. 定點小數
X爲一個二進制數
當X在[0,1)時,X的反碼:X去掉小數點,去掉正號
當X在(-1,0]時,X的反碼:先對每一位取反,去掉小數點,去掉負號
【例】X= +0.1011
[X]反=01011
【例】X= -0.1011
[X]反=10100
[2]. 整數
X爲一個二進制數
當X>0時,X的反碼:X前面添0,去掉正號
當X<0時,X的反碼:先對每一位取反,前面添1,去掉負號
【例】X= +10101
[X]反=010101
【例】X= -10101
[X]反=101010
三、補碼
[1]. 定點小數
X爲一個二進制數
當X在[0,1)時,X的補碼:X去掉小數點,去掉正號
當X在[-1,0]時,X的補碼:
在X的反碼基礎上+1
當X在[-1,0)時,X的反碼:先對每一位取反,去掉小數點,去掉負號
【例】X= +0.1011
[X]補=01011
【例】X= -0.1011
[X]反=10100
[X]補=10101
[2]. 整數
X爲一個二進制數
當X>0時,X的補碼:在X前面添0,去掉正號
當X<0時,X的補碼:
在X的反碼基礎上+1
當X<0時,X的反碼:先對每一位取反,前面添1,去掉負號
【例】X= +10101
[X]補=010101
【例】X= -10101
[X]反=101010
[X]補=101011
四、總結
對於正數X來說,[X]原=[X]反=[X]補
對於負數X來說,[X]補=[X]反+1
對於整數X來說,在X前需添0或1
對於小數X來說,X整數位需變爲0或1