关于原码、反码和补码的正确理解

文章介绍了计算机中数字以二进制运算为基础,重点讲解了原码、反码和补码的概念。补码使得减法转换为加法,简化了计算过程。通过模的概念,解释了补数在计算中的作用,尤其是如何通过补数进行减法运算。反码是1的补数,而补码是2的补数,在二进制中通过取反加一实现。
摘要由CSDN通过智能技术生成

首先需要明确,计算机中数字都是以二进制进行运算。

如何计算

原码就是原来的表示方式;

反码就是将数字按位取反;

补码就是取反加一。

那么究竟为什么这么算?为什么需要补码?

模的概念

模在这里表示计量范围,比如一个10进制二位数的模是100,能表示0~99,一个8位二进制数实际能表示的范围是1 0000 0000b个数字,从0~1111 1111。这些能表示的数字其实都是模的余数,因为不可能大于等于模。

补数

补数就是模减去当前数字。比如在十进制中,二位十进制数88的补数就是100-88=12。二进制中,一个四位数1001的补数就是10000-0001=1111。

那么补数的存在有什么意义呢?

可以使减法变成加法。

从模的概念可以看出,一个数字表示方法的模为m的话,那么用该方法表示的a和b相减就可以表示为

a-b=a+(m-b)(mod m)=a+(m-b)

m-b就是b的补数。可以理解为 减一个数=加这个数的补数,就比如将时钟从6点向前拨4个点到2点和从6点往后拨8个点到2点效果是一样的。因为进位被忽略了(超出了表示范围)。

实质上计算机的四则运算都是运用了加法,包括乘除也是依此为基础,这样非常利于计算机运算。

反码和补码

反码的英文是one’s complement

也就是1的补数,1的补数就是0,那么0的补数就是1,在二进制中表现为取反,这就是反码。

补码的英文是two’s complement

也就是2的补数,它和二进制更加对应,一个有限位数的二进制数的模就是是100…00(0的个数和位数相同),比如四位数的模就是10000,那么一个四位数x的补数就是

10000-x=1111-x+1

1111-x实际上就是取反,所以补码就等于一个数取反+1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值