原码、反码、补码的计算方法

前言

为了方便统一表示整数、零和负数,常用原码、反码、补码来表示一个二进制数。
此文章仅讨论原码、反码、补码的计算方法,不涉及相应的概念。
如果文章内容有误,可在评论区指出。

一、原码

[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

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