目录

 

                    1.背景        

2.为什么电脑运算用的是补码?

3.为什么byte类型的最小范围是-128而不是-127?


1.背景        

         计算机与现实生活有着紧密的联系!最初是为了计算导弹的发射轨迹而发明的!既然目的是为了计算,科学家们就想运算过程尽可能简单方便!咱们日常生活中,有正数,负数,有加法运算,减法运算等一系列!咱们可以一眼认出来正负,加减!但是交给计算机了,它就要进行非常复杂的过程才能知道!

        现实生活中们都知道1-1=1+(-1)=0,于是就有科学家提出了大胆的想法,让计算机只进行加法,舍弃减法,这样计算机的运算就方便很多,同时让正负符号也参与底层运算!这样就不需要计算机去识别什么时候是减法,什么时候是负号了!


2.为什么电脑运算用的是补码?

于是就用二进制码(计算机底层都是二进制码,由0和1组成,这种二进制码也被称为原码!)进行运算: 

(原码,反码和补码以及进制转换相关的介绍在小编的另一篇文章里有:)原码反码和补码_naoguaziteng的博客-CSDN博客

(计算机中,最左边的第一位代表符号位,0,正数,1,负数!)

1-1 = 1+(-1) = (0000 0001)原+(1000 0001)原=(1000 0010)原 =-2

呀呀呀!出大问题了吧!这(1-1)明明等于0的吖!怎么这样算结果数负二了呢?为了让值为0,

于是就出现了反码(正数的反码跟原码一样,负数的反码,符号位不变,其余取反!)继续拿反码运算(1-1)

1-1 = 1+(-1) = (0000 0001)原+(1000 0001)原

 现在值没问题了!却来了个负号!现实生活中,0的正负号是没有意义的.如果这样的话,0在计算机就有两种表示: (0000 0000)和(1000 0000).本来0的正负就没有意义,那计算机可不兴这样!

为了解决这个0的正负的问题,于是出现了补码(正数的补码与原码一样,负数的补码是其反码+1)!

接着拿补码再算一次(1-1).

 如果拿补码进行运算,就不会有"-0"的存在了,用(0000 0000)就可以表示0了!于是经过各种实验,

最终,计算机底层都是拿补码进行运算的!而补码运算就定好了0的表示是0000 0000,

避免了-0即()1000 0000的出现.


 3.为什么byte类型的最小范围是-128而不是-127?

还记得咱们拿补码运算的时候,溢出了一个1吗?也就是这个溢出的1(向负数方向溢出),导致本应是-127变成了-128!

或者换个思路!(-127)加上溢出(多余的"-0"的表达方式的空),即-127+(-1)

 好啦!今天的问题就是解决到这里啦!

 

 (小编也在努力学习更多哟!以后会多多分享哒!)

希望对友友们有所帮助!!!!