原码、补码、反码

 我来答
舒适还明净的海鸥i
2022-07-31 · TA获得超过1.7万个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:69.4万
展开全部
对于一个数, 计算机要使用一定的编码方式进行存储。 原码, 反码补码是计算机存储一个具体数字的编码方式。

计算机中:数值的符号用一个数的最高位作为符号位,0代表正数,1代表负数。

计算机中使用的连同符号位一起数字化了的数称为机器数。因为第一位是符号位,所以机器数的形式值就不等于真正的数值。所以将带符号位的机器数对应的真正数值称为机器数的真值。

而原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。

反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余各位取反。

补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(即在反码的基础上+1)

在计算机中,正数是直接用原码表示,负数用补码表示。

补码还原成真值的过程为:补码—>原码—>真值        [ X ] 原码   =   [ [ X ] 补码 ] 补码

若补码符号位为1,将其后的数值位按位取反加1,结果为真值且为负。

首先,根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1+(-1), 所以计算机被设计成只有加法而没有减法, 而让计算机辨别“符号位”会让计算机的基础电路设计变得十分复杂,于是就让符号位也参与运算,从而产生了反码。

用反码计算, 出现了“0”这个特殊的数值,0带符号是没有任何意义的。而且会有[0000 0000]和[1000 0000]两个编码表示0。于是设计了补码,负数的补码就是反码+1,正数的补码就是正数本身,从而解决了0的符号以及两个编码的问题:用[0000 0000]表示0,用[1000 0000]表示-128。

注意到:-128实际上是使用以前的-0的补码来表示的,所以-128并没有原码和反码。使用补码,不仅仅修复了0的符号以及存在两个编码的问题,而且还能够多表示一个最低数。这就是为什么8位二进制,使用补码表示的范围为[-128, 127]。
网易云信
2023-12-06 广告
UIkit是一款轻量级、模块化、基于jQuery的UI框架,它提供了大量易于使用的UI组件,包括按钮、表单、表格、对话框、通知等等。UIkit的设计理念是尽可能地简洁和灵活,开发者可以根据自己的需求自由地选择需要的组件和样式,从而快速构建出... 点击进入详情页
本回答由网易云信提供
象拔蚌烧卖
2022-11-11 · TA获得超过1207个赞
知道大有可为答主
回答量:1585
采纳率:65%
帮助的人:76.1万
展开全部
计算机中,并没有原码和反码,只是使用补码,代表正负数。

使用补码的意义:可以把减法或负数,转换为加法运算。从而简化计算机的硬件。

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

比如钟表,时针转一圈,周期是 12 小时。

倒拨 3 小时,可以用正拨 9 小时代替。

9,就称为-3 的补数。

计算方法:12-3 = 9。

对于分针,倒拨 X 分,就可以用正拨 60-X 代替。

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

如果,限定了两位十进制数 (0~99),周期就是 100。

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

  24-1 = 23

  24 + 99 = (1) 23

忽略进位,只取两位数,这两种算法,结果就是相同的。

于是,99 就是 -1 的补数。

其它负数的补数,大家可以自己求!

求出了负数的补数,就可用加法,代替减法了。

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

计算机中使用二进制,补数,就改称为【补码】。

常用的八位二进制是:0000 0000~1111 1111。

它们代表了十进制:0~255,周期就是 256。

那么,-1,就可以用 255 = 1111 1111 代替。

所以:-1 的补码,就是 1111 1111 = 255。

同理:-2 的补码,就是 1111 1110 = 254。

继续:-3 的补码,就是 1111 1101 = 253。

。。。

最后:-128,补码是 1000 0000 = 128。

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

正数,直接运算即可,不需要求补码。

   也可以说,正数本身就是补码。

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

补码的应用如: 7-3 = 4。

用补码的计算过程如下:

    7 的补码=0000 0111

   -3的补码=1111 1101

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

   得:  (1) 0000 0100 = 4 的补码

舍弃进位,只保留八位,作为结果即可。

这就是:使用补码,加法就代替了减法。

所以,在计算机中,有一个加法器,就够用了。

原码和反码,都没有这种功能。

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

原码和反码,毫无用处。计算机中,根本就没有它们。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

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

在计算机中,原码和反码,都是不存在的。

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

你只要掌握“数值与补码”的互换,就可以了。

原码反码,都是干什么的呢?

老外数学不好,才需要弄哪些个骚操作。

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式