您现在的位置是:主页 > news > 盐湖网站制作/百度指数的搜索指数代表什么
盐湖网站制作/百度指数的搜索指数代表什么
admin2025/6/2 19:10:17【news】
简介盐湖网站制作,百度指数的搜索指数代表什么,乌克兰服务器,上海网站企业文章目录3.1.原码3.2.反码3.2.1.概述3.2.2.反码的计算3.2.2.1.如:计算2的反码的过程3.2.2.2.如:计算-2的反码的过程3.2.3.反码深入解析3.2.3.1.首先我们绘制了下面的一张图3.2.3.1.使用反码进行加减运算3.2.3.1.1.正数加正数:233.2.3.1.2.负数加负数:-2-…
盐湖网站制作,百度指数的搜索指数代表什么,乌克兰服务器,上海网站企业文章目录3.1.原码3.2.反码3.2.1.概述3.2.2.反码的计算3.2.2.1.如:计算2的反码的过程3.2.2.2.如:计算-2的反码的过程3.2.3.反码深入解析3.2.3.1.首先我们绘制了下面的一张图3.2.3.1.使用反码进行加减运算3.2.3.1.1.正数加正数:233.2.3.1.2.负数加负数:-2-…
备注
文章目录
- 3.1.原码
- 3.2.反码
- 3.2.1.概述
- 3.2.2.反码的计算
- 3.2.2.1.如:计算2的反码的过程
- 3.2.2.2.如:计算-2的反码的过程
- 3.2.3.反码深入解析
- 3.2.3.1.首先我们绘制了下面的一张图
- 3.2.3.1.使用反码进行加减运算
- 3.2.3.1.1.正数加正数:2+3
- 3.2.3.1.2.负数加负数:-2-3
- 3.2.3.1.3.正数加负数:2-3
- 3.3.补码
- 3.3.1.概念
- 3.3.2.补码的计算
- 3.3.2.1.正数补码的结算:正数的补码与其二进制原码一致
- 3.3.2.2.负数补码的结算:负数的补码在其绝对值反码的基础上最后一位加1
- 3.3.3.补码深入解析
备注
1.在计算机中,我们使用0和1来进行数据的存储;
2.我们这里为了掩饰方便,演示的int类型,姑且认为是4位字节长度 (正常int类型4个字符长度,每个字符8个字节,应该是32个长度)
3.1.原码
1.所谓原码,就是我们数字通过转换为二进制的一个表示方法,负数原码1开头,正数0开头
举例
0010 #数字2的表示方法,这里注意下,2是int类型,字符长度为4个字节32位1010 #数字-2的表示方法
3.2.反码
3.2.1.概述
1.反码实际上主要是为了解决"二进制的正数与负数相加等于0"的问题;例如:2+(-2)=0
2.首先我们理解一个固定的概念:正数二进制表示以0开头,负数二进制标示以1开头(基于二进制字节的最大长度,最左边数值); 如正数2原码(最左边数值为0)0010如负数-2原码(最左边数值为1)1010
3.2.2.反码的计算
1.正数的反码与正数的原码一致;
2.负数的反码计算稍微复杂一点:2.1.获取负数的绝对值2.2.获取负数的绝对值的原码2.3.将上面的原码就行翻转,如果是0就变成1,如果是1则变为0
3.2.2.1.如:计算2的反码的过程
0010 # 2的原码0010 # 2的反码 正数反码与原码一致
3.2.2.2.如:计算-2的反码的过程
0010 #1.首先获取-2的绝对值的原码1101 #2.上面原码反转,也就是-2的反码 (1变成0 0变成1)
3.2.3.反码深入解析
3.2.3.1.首先我们绘制了下面的一张图
int数值 | 二进制数值原码 | 二进制数值反码 | int数值 | 二进制数值原码 |
---|---|---|---|---|
0 | 0000 | 1111 | -0 | 1000 |
1 | 0001 | 1110 | -1 | 1001 |
2 | 0010 | 1101 | -2 | 1010 |
3 | 0011 | 1100 | -3 | 1011 |
1.因为我们说反码其实就是为了解决"二进制的正数与负数相加等于0"的问题,所以正数的反码就是其负值,例题1:0-0=00的反码是0000,反码是1111,也就是1111就是0(只不过是-0);0-0=0---->0000+1111=1111例题2:1-1=01的原码是0001,反码是1110,也就是1110就是-1 ;1-1=0----->00001+1110=1111
3.2.3.1.使用反码进行加减运算
3.2.3.1.1.正数加正数:2+3
2+3=0010+0011=0101----->5
正数与正数的加法其实直接使用各自的原码进行加法运算即可,无需使用反码
3.2.3.1.2.负数加负数:-2-3
我们从上面知道2的反码是1101 也就是(-2)3的反码是1100 也就是(-3)
那么,(-2)+(-3)=1101 #从反码的角度去看,1101是-2,很明显-2+-3跟我们预期的结果不一致,小伙伴就比较崩溃了吧,#但是从负数的二进制原码来看,第一位是1是符号位,后面是真实的数值位:也是-5所以,负数的相加也没啥问题,可以不使用反码
3.2.3.1.3.正数加负数:2-3
我们从上面直达2的原码:00103的反码: 1100 (也就是-3)
2-3=0010+1100=1110---->从反码知道是-1
所以,利用反码,我们完美的解决了正负数相加的问题;
3.3.补码
3.3.1.概念
1.补码存在的意义是为了解决识别和区分0和-0的问题,因为我们认为-0 是没有意义的;
3.3.2.补码的计算
3.3.2.1.正数补码的结算:正数的补码与其二进制原码一致
如:
0010 #2的原码
0010 #2的补码
3.3.2.2.负数补码的结算:负数的补码在其绝对值反码的基础上最后一位加1
如:
0010 #-2的绝对值为2,2的二进制原码
1010 #-2的原码 ,负数的原码只是其绝对值的第一位标记位不同,负数为1开始,正数0开始
1101 #-2的二级制反码:除了第一位符号位之外,其他都按位去反
1110 #在反码1101的基础上+1,即为1110
3.3.3.补码深入解析
下面我们通过1-1的案例去分析存在的问题
1.按照原码的方式计算:1-1=0001+1001=1010----->-2 #很明显这个方式计算是走不通,也呼应了我们上面的规则,正负加法不能使用原码
2.按照反码的方式计算:1-1=0001+1110=1111----->-0 #因为第一位为1,我们知道是负数实际上我们没有-0的概念,这样表示显然不合适,#因此我们如何去掉这个-的符号呢?
3.按照补码的方式计算:1-1=0001+1111=0000 #这里注意下,我们在做这个二进制加法的时候,实际上最高位由于长度溢出了#从结果看应该是10000,但是由于我们的长度最大是4位,所以最高位溢出,就没了#因为我们0的补码就是0000,所以结果就是0,这样就不存在-的符号了
大家这里注意下,我们进行原码 反码 补码计算的时候,注意下
我们的计算都是基于相同的码的计算
比如:要么全部转成原码+原码=原码------>找出对应的数值
比如:要么全部转成反码+反码=反码------>找出对应的数值
比如:要么全部转成补码+补码=补码------>找出对应的数值
内存中,负数本质上是以补码的形式存储的,正数本质上也是(只不过正数的原码,反码和补码都是一致的)