关于源码反码补码的要点

关于源码反码补码的要点

数据在内存中都是以二进制顺序存储的,每个1或0被称为1位,在x86CPU上一个字节是8位,因为Intel CPU的架构原因,它是按字节倒叙存储的。

那么为什么会出现源码反码补码呢

这是因为数据有正数和反数,如果计算机用原码相加减,那么如果都是正数,没有问题,如果计算中出现了负数呢,也就是说,源码补码反码的就是为了简化减法出现的,将减号化为负数后,再讲负数化为补码,进行加法运算,这时的运算就和正负数没有关系了。 注意:这里的正数是包括0的

那么什么叫源码反码补码呢

源码:正数的源码最高位用来表示,负数的源码最高位用1来表示。 比如10的源码为00000000000000000000000000001010 -10的源码为10000000000000000000000000001010 反码:正数的反码和源码相同,负数的反码除符号位外,其余各位按位取反 10的反码为00000000000000000000000000001010 -10的反码为11111111111111111111111111110101 补码:正数的源码,反码,补码都相同,负数的补码等于反码最后一位加1 10的补码为00000000000000000000000000001010 -10的补码为11111111111111111111111111110110

在计算机中将数据以补码的形式存储下来。

byte的最大最小值

因为最高位只能是0,所以最大值为011111111(2)也就是127(10) 因为负数最高位为1,那么也就是111111111?这不是-127吗,可是最小值不是128吗,这是什么情况。这是因为由于在二进制中,出现了10000000和00000000,那么这两个都是0?这样不是对于资源造成了浪费吗,从数轴的角度出发,我们把00000000作为0,而10000000呢,最终认为将他的最高位符号位既认为是符号位又认为是数值最高位,也就是-128 所以byte的最大值为127最小值为-128

经验分享 程序员 微信小程序 职场和发展