首页

文章

原码,补码,反码

发布网友 发布时间:2022-03-26 19:26

我来回答

3个回答

热心网友 时间:2022-03-26 20:55

假设有一
int
类型的数,值为5,那么,我们知道它在计算机中表示为:
00000000
00000000
00000000
00000101
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。
现在想知道,-5在计算机中如何表示?
在计算机中,负数以其正值的补码形式表达。
什么叫补码呢?这得从原码,反码说起。
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
比如
00000000
00000000
00000000
00000101

5的
原码。
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
取反操作指:原为1,得0;原为0,得1。(1变0;
0变1)
比如:将00000000
00000000
00000000
00000101每一位取反,得11111111
11111111
11111111
11111010。
称:11111111
11111111
11111111
11111010

00000000
00000000
00000000
00000101
的反码。
反码是相互的,所以也可称:
11111111
11111111
11111111
11111010

00000000
00000000
00000000
00000101
互为反码。
补码:反码加1称为补码。
也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。
比如:00000000
00000000
00000000
00000101
的反码是:11111111
11111111
11111111
11111010。
那么,补码为:
11111111
11111111
11111111
11111010
1
=
11111111
11111111
11111111
11111011
所以,-5
在计算机中表达为:11111111
11111111
11111111
11111011。转换为十六进制:0xFFFFFFFB。
再举一例,我们来看整数-1在计算机中如何表示。
假设这也是一个int类型,那么:
1、先取1的原码:00000000
00000000
00000000
00000001
2、得反码:
11111111
11111111
11111111
11111110
3、得补码:
11111111
11111111
11111111
11111111
正数的原码,补码,反码都相同,都等于它本身
负数的补码是:符号位为1,其余各位求反,末位加1
反码是:符号位为1,其余各位求反,但末位不加1
也就是说,反码末位加上1就是补码
1100110011

1011001100

除符号位,按位取反
1011001101

除符号位,按位取反再加1
正数的原反补是一样的
在计算机中,数据是以补码的形式存储的:
在n位的机器数中,最高位为符号位,该位为零表示为正,为1表示为负;
其余n-1位为数值位,各位的值可为0或1。
当真值为正时:原码、反码、补码数值位完全相同;
当真值为负时:
原码的数值位保持原样,
反码的数值位是原码数值位的各位取反,
补码则是反码的最低位加一。
注意符号位不变。
如:若机器数是16位:
十进制数
17
的原码、反码与补码均为:
0000000000010001
十进制数-17
的原码、反码与补码分别为:1000000000010001、1111111111101110、1111111111101111

热心网友 时间:2022-03-26 22:13

原码:
将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示)。
为了简单起见,我们用1个字节来表示一个整数。

+7的原码为:
00000111

-7的原码为:
10000111
问题:

+0的原码为:00000000

-0的原码为:
10000000
反码:
一个数如果为正,则它的反码与原码相同;一个数如果为负,则符号位为1,其余各位是对原码取反。
为了简单起见,我们用1个字节来表示一个整数:

+7的反码为:00000111

-7的反码为:
11111000
问题:

+0的反码为:00000000

-0的反码为:11111111
补码:
利用溢出,我们可以将减法变成加法。
对于十进制数,如果从9得到结果5,可以用减法:
9-4=5
因为4+6=10,我们将6作为4的补数,将上式的减法改写为加法:9+6=15
去掉高位1(也就是减去10),得到结果5.
对于16进制数,如果从c得到结果5,可以用减法:
c-7=5
因为7+9=16,我们将9作为7的补数,将上式的减法改写为加法:c+9=15
去掉高位1(也就是减去16),得到结果5.
补码:一个数如果为正,则它的原码、反码、补码相同;一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1。为了简单起见,我们用1个字节来表示一个整数:
+7的补码为:
00000111
-7的补码为:
第一步:11111000,第二步+1=11111001
问题:0的补码表示:
+0的补码:
00000000
-0的补码:第一步:11111111
第二步+1=
1
00000000
第三部:进位1被丢弃

已知一个负数的补码,将其转换为十进制数,步骤:

1、先对各位取反;

2、将其转换为十进制数;

3、加上负号,再减去1。

例如:

11111010,最高位为1,是负数,先对各位取反得00000101,转换为十进制数得5,加上负号得-5,再减1得-6。

热心网友 时间:2022-03-26 23:48

计算机中,并没有原码和反码,只有补码。

借助于补码,负数和减法,都可以转化成加法来进行运算。

那么,计算机的硬件,就可以简化了。

因此,在计算机中,只有加法器,并没有减法器。

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

补码是怎么回事? 这得从“补数”谈起。

计算机所能计算的位数,是固定的,如八位机。。。

位数限定之后,就可以用“补数”代替负数,用加法实现减法运算。

限定两位十进制,-1,就可以用 +99 代替。

   25 - 1 = 24

   25 + 99 = (一百) 24

舍弃进位,只取两位,这两种算法功能就是相同的。

99,就是-1 的补数。 计算公式:补数 = 一百+负数。

一百,是两位十进制数的计数周期。

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

计算机用二进制,补数,就改称为:补码。

八位二进制:0000 0000 ~ 1111 1111 (十进制 255)。

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

求负数补码的计算公式,也是: 周期 + 该负数。

-1 补码就是:256 + (-1) = 255 = 1111 1111(二进制)。

用不存在的“原码反码取反加一”来求,也是这个结果。

正数,不用转换。 也可以说,正数自身就是补码。

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

举例说明,如: 7-3 = 4。

用补码计算的过程如下:

    7 的补码=0000 0111

    -3的补码=1111 1101

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

   得   (1)  0000 0100 = 4 的补码

舍弃进位,只保留八位,这就实现了 7-3。

贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 里翁行()拼音版、注音及读音 带“不虑”的诗句 “鲁肃当年万人守”的出处是哪里 无尘防尘棚 进出口报关流程,越详细越好。谢谢大家指教。 双线桥不是看化合价升多少就标多少的吗?为什么CL2+2KI=2KCL+I2中I失... 出师表高锰酸钾有画面了吗 2021年幼儿园新学期致家长一封信 电脑屏幕一条黑线怎么办? 销售代理商销售代理商的特点 商业代理商业代理的特征 如何看微信有没有开通微众银行 为什么微众没有开户 微众银行怎么开户 微众银行APP开户流程是什么? 唐古拉山海拔唐古拉山海拔是多少 怎么看待取消跳广场舞的人的退休金 如何选购新鲜的蓝田水柿? 恭城水柿柿树作用 创维洗衣机使用教程 创维全自动洗衣机怎么使用 自动开门器 狗羊属相婚姻相配吗 3岁的小孩不会说话怎么办 3岁孩子不会说话,应该挂什么科? 3岁小孩不会说话正常吗 鹿茸炖乌鸡怎么做? 新型冠状肺炎吃什么药可以预防 冰箱上电后一直响 食品生产许可证编号开头为“ G”。 库存过期香精 原码、反码、补码 正整数的原码,补码都是一样的吗?零的原、补码是多少? 为什么正数的反码与原码相同 正数的原码 补码和反码表示格式相同吗 为什么正数的补码反码相等 二进制正,负数的原码,反码,补码三者之间是什么关系 为什么正数的反码,补码和原码一样举例说 二进制中,正数的原码与补码相同吗?我的c语言教程上这么说。谁能解释一下? 二进制正,负数的原码,反码,补码三者之间是什么关系? 请问在计算机中正数的原码、反码、补码是一样的么? 为什么正整数的原码,反码,补码相同..? 在计算机中正数的原码,反码,补码是一样的么 对于正数,其原码,反码,补码是相同的吗 正数的原码反码补码到底是不是一样的? 华为什么手机支持无线快充?还有5g? 华为那几个手机支持无线充跟快充? 华为SEA AL10支持无线充电吗? 华为nova6支持无线充电吗? 华为nave5z支持无线充电吗? 华为nova 5 Pro安装啥配置能在车里无线充电? 原码反码和补码有什么区别? +8的补码,原码,反码各为多少?还有-8的。 计算机组成原理:原码,补码,反码,移码之间的关系? 网易云唱片收藏怎么移出去 手机,“网易云音乐”里我的收藏怎样选择性删除? 网易云音乐歌曲菜单里如何删除歌曲收藏啊?如图 网易云音乐怎么删不掉收藏的歌了 网易云音乐PC客户端 收藏的歌单,里面有一几首音乐不喜欢可以删除吗?? 网易云音乐下架无法收藏怎么办 怎样删除批量微信朋友圈的内容 OPPO a3怎样使用长截屏? OPPOA3怎么截长屏 oppo手机如何截长图截屏 oppo截屏怎么截长图 oppo手机如何滚动截长图 oppo手机怎么截屏长图 高德导航如何设置横屏切换旋转? 高德导航如何设置横屏切换旋转 高德导航怎样才能调横屏? 高德地图手机版怎么变为横屏?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com