原碼、反碼、補碼的計算方法

前言

爲了方便統一表示整數、零和負數,常用原碼、反碼、補碼來表示一個二進制數。
此文章僅討論原碼、反碼、補碼的計算方法,不涉及相應的概念。
如果文章內容有誤,可在評論區指出。

一、原碼

[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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章