补码.原码.反码怎么运算的啊.详细一点

 我来答
做而论道
高能答主

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

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

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

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

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

你想象一下:

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

  他只会数一百个数(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 !

   难道,负零,是正数吗?

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

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

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

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

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

听不清啊
高粉答主

2015-04-29 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
以8位机器码为例:

对正数而言,原码、反码、补码都是相同的。
十进制数7,
都是:
00000111
对于-7
原码,只是最高位用1表示负数,就是:
10000111
反码,就是在原码的上,除最高位(符号位)外,按位取反就行:
11111000
补码,就是在反码的基础上,最低位加1:
11111001
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式