原码、反码、补码的计算方法
原码、反码、补码的介绍
前言
为了方便统一表示整数、零和负数,常用原码、反码、补码来表示一个二进制数。
此文章仅讨论原码、反码、补码的计算方法,不涉及相应的概念。
如果文章内容有误,可在评论区指出。
一、原码
[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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)