C语言的补码存在的意义是什么?看书不怎么懂

 我来答
沙里波特
2021-09-29 · TA获得超过5489个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:689万
展开全部

使用补码代表负数,就可以把减法,转化为加法运算。

那么,在计算机中只要有一个加法器,就可以做加、减法了。

使用补码的意义,就是简化了计算机的硬件。

 

常识:时钟倒拨 3 小时,可以用正拨 9 小时代替。

怎么计算,自己推导吧。

--------

两位十进制数,共有 100 个数字:00~99。

那么,减一,就可以用 +99 代替:

  25-1 = 24

  25 + 99 = (1) 24

忽略进位 100,只取后两位,结果,不就是相同的吗?

结论:只要利用一个“较大的正数”代替负数,就能把减法变加法了。

这个较大的正数,就是负数的补数。

计算公式:-1 的补数=100-1 = 99。

     -2 的补数=100-2 = 98。

     。。。

--------

计算机中,使用的是二进制。

二进制的补数,就改称为:补码。

八位二进制数,共有 256 个数字:0000 0000~1111 1111。

那么,-1 的补码就是 1111 1111 = 255(十进制)。

同理,-2 的补码就是 1111 1110 = 254(十进制)。

   。。。

最后,-128 的补码就是 1000 0000 = 128(十进制)。

计算公式:负数的补码=【256+这个负数】

零和正数,不需要求补数(补码),直接计算即可。

创作者FgzMqBQ8L8
2020-01-01 · TA获得超过4026个赞
知道大有可为答主
回答量:3173
采纳率:33%
帮助的人:247万
展开全部
计算机存储数据方式是以补码形式存的。
int
i=-1;
printf("%u",i);
看明白这个就差不多了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式