计算机补码运算公式,计算机中的补码

计算机中的补码

未分类

献给那些不懂C语言,但是仍然坚持备考计算机二级的同学们!加油

首先,在计算机系统中,数值一律用补码来表示(存储)。主要原因是使用补码可以将符号位和其他位统一处理;同时,减法也可以按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。补码跟源码的转换过程几乎是相同的。

正数的补码:和原码一样

负数的补码:该负数的相反数,为正数的补码为

请牢记此公式

即一个负数的补码是 其相反数做取反运算在加1的结果。(这是公式,就这样规定的)

举例1 求负数的补码

型的一个数,即int a = -2,其补码,即在计算机中的存储形式计算方法如下:

第一步 求相反数

-2的相反数是2,,2的32位二进制(因为int是32位的)为0 000 0000 0000 0000 0000 0000 0000 0010

第二步 取反

取反,即 ~ 2运算,结果为:

(注意:取反运算也会把最高位取反):1 111 1111 1111 1111 1111 1111 1111 1101

第三步 加一

在加 1,结果为:1 111 1111 1111 1111 1111 1111 1111 1110

所以在计算机中, -2是以1 111 1111 1111 1111 1111 1111 1111 1110这样的形式存储的,即1 111 1111 1111 1111 1111 1111 1111 1110是-2的补码。

好,现在根据公式会求负数的补码了。

那么,给一个补码,怎么求其代表的10进制的负数呢?

那就把上面的三步倒着来一遍不就得到了这个负数的相反数了,那么这个负数不就显而易见了,是吧。好,还是不懂,那我们举个例子吧!

举例2 求补码所代表的负数

假设一个型32位的二进制是1 111 1111 1111 1111 1111 1111 1111 1101

明显,其最高位是,所以这是一个负数。

第一步: 减一

反执行上面的第三步,为1 111 1111 1111 1111 1111 1111 1111 1100

第二步:取反0 000 0000 0000 0000 0000 0000 0000 0011

第三步:得到了这个数的相反数

二进制0 000 0000 0000 0000 0000 0000 0000 0011表示的十进制是,所以这个负数是啦

当然,还有其他求补码和补码变十进制的方法,选择喜欢的理解吧。

现在我们有这个公式,如果让求,那是不是很容易啊,明显

所以请记住这个公式吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值