补码有什么用?

补码(two'scomplement)1、在计算机系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外... 补码(two's complement) 1、在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 2、补码与原码的转换过程几乎是相同的。百度百科上面的。文中的符号位是什么?其他位指的是什么? 展开
 我来答
匿名用户
2013-12-10
展开全部
这个全讲得很详细估计得打很多字` 我懒~所以简单说哈~计算机不会减法`所以用补码把减法变成加法` 你看的数一般就说 "正数的补码是其本身,负数的补码是原码按位取反后1,符号位就是最高位等等`"但是确没说为什么 正书可以127`负数居然可以存128位其实是不准确`或者说有的地方是不对的从底层看`只是为了方便你记忆总结的规律~我们还是来看8位~ 首先~我得说补码无正负号~这是官方解释~ 8位二进制一共可以表示多少位数字?255个加个0~~ 其次~补码其实是 跟最小数的 "距离"~为什么这么说是最小数的距离`解释很麻烦`不过有个最简单的方法是穷举`(我们先看后7位~第一位我稍后解释为什么不是正负号)-128 是多少 0000000-127 0000001-128 0000002………………-1 11111110 00000001 0000001……………………127 1111111 从这里我们可以看出~7位反码是跟最小数 -128的距离~ 但我们又发现个问题~ -1到0的时候进位了`但是我们只有7位` 进的那一位没有` 这就是为什么要8位的原因~但现在又出现个问题` 为什么 没进位的第一位是1~进位以后第一位是0~也就是说~ -1为什么不是01111111 而是11111111?我们还是举例来说明`- 1+-2为多少~至少显然是个负数~ 而如果-1表示为 01111111`那-1+-2`会为11111101~ 负数加负数居然等于整数!显然不行`所以 -1也11111111表示~ 也就是说` -128不是从00000000开始` 而是从10000000开始(注意开始穷举是7位`这里是八位)~ 所以我们看出~第一位主要是为了进位也有区别正负数的作用~但是其实不是正负号~其实这些举例都可以换成数学方式说明~不过估计说起更复杂~举例说明简单些~ 希望对你有帮助
AiPPT
2024-12-03 广告
作为北京饼干科技有限公司的一员,对于市场上各类工具都有所了解。就AiPPT而言,它确实为用户提供了便捷高效的PPT制作体验。通过智能化的辅助功能,用户能够快速生成专业且富有创意的演示文稿,极大地节省了时间和精力。无论是对于个人用户还是企业团... 点击进入详情页
本回答由AiPPT提供
匿名用户
推荐于2017-11-26
展开全部
你应该知道原码、反码、补码吧?
正数的补码,就是基本身
负数的补码,就是原码按位取反加1
符号位,就是最高位,最左面的第一位;其它位,就是剩下的7位
由于运算器进行加法是最快的,因此,使用补码是为了加快计算
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2022-10-13 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

补码、原码、反码,这些都是计算机专家创造的词汇。

事实上,它们,都不应该存在。

计算机的运算,是很简单的,和这些词汇,并没有任何关系。

--------------------------

你想象一下:

  有一个小朋友,很小的,大概是三岁吧。

  他只会数一百个数(0~99),会加法,还不会做减法。

那么,你可以这样教他:加 99,就是减一。

比如: 25 - 1 = 24

    25 + 99 = (一百) 24

让他只取 2 位数,忽略进位,结果,就是正确的。

--------------------------

上面是一个简单的例子,却说明了一个事实:

  做计算时,限定了位数,正数,就能当做负数使用。

限定了位数,有两个意义:

  数值是循环的,具有周期性;

  有没有进位,都不必考虑。

代替负数的正数,怎么求呢?

  公式,你一定能看出来: 正数 = 负数 + 周期。

--------------------------

在计算机中,8 位 2 进制,称为一个字节。

计数值范围是:0000 0000~1111 1111。

对应的十进制:0 ~ 255。

计数周期,是:2^8 = 256。

这里,共有 256 个机器数。

较大的128 个,就可以代表负数了:

 -1 补码就是:-1 + 256 = 255 = 1111 1111。

 -2 的补码 = 254 = 1111 1110 (二进制)。

 。。。

 -128 的补码 = 128 = 1000 0000 (二进制)。

较小的 128 个,就代表自身的数值了:0 ~ 127。

--------------------------

减法算式: 5 - 7 = -2, 用 8 位补码计算如下:

      5 = 0000 0101

 -7 的补码 = 1111 1001

--相加---------------

   得: (0)  1111 1101  = -2 的补码

在这里,用加法代替减法,略去进位,结果,就完全正确。

--------------------------

用正数(补码)代替了负数,减法运算也就没有了。

因此,计算机的硬件,就可以得到简化了。

所以,在计算机系统中,负数,一律采用补码表示和存储。

原码和反码,在计算机中,根本就不能用。

事实上,它们,根本就不存在。

--------------------------

什么是补码? 为什么要用补码?

看完上面的介绍,相信你都有了答案。

那么,原码和反码,就没有任何意义了。

这两种代码,只是用来求补码的过渡而已。

其实,原码和反码,还有“取反加一”,都是“鸡肋”。

浪费不少时间学习这些,却不能理解【补码的意义】。

况且,用“取反加一”求 0 和-128 的补码,就是难事。

 -128,它没有原码和反码,拿什么取反加一?

 -0 的补码,求出来是 0000 0000。

   符号位,居然是 0 !

   难道,负零,是正数吗?

 有人说,零,不分正负,所有只有一个补码。

   那么,原码反码中,为什么有两个零?

--------------------------

其实,原码反码符号位取反加一,就是一大篇自相矛盾的谬论。

正数代替负数,小学生都懂的,他们竟然弄出这许多骚操作!

老外数学不好,由此可见一斑。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2019-11-18 · TA获得超过5251个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:639万
展开全部

百度百科,是网友自己瞎编的。

他们爱写什么,就写什么,你不用对它关心。

可见:网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式