首页 > 编程知识 正文

计算机的原码反码补码概念,计算机中补码与原码

时间:2023-05-06 17:51:11 阅读:245067 作者:2309

数值在计算机中是通过补码的方式存储的,补码是一种特殊的机器数,通过最高位来确定是否为正数,0代表正数,1代表负数,这儿涉及三个概念,原码,反码,补码;

在计算机中,根据编码的方式不同,每一个字符都有其对应的编码,也有其对应的编码表中的整型位置,每一个位置,对应了一个二进制的表示方式,从而让计算机实现了字符的展示,以上是对应于字符型数据的处理。

对于整型数据,在java中,有五种整型的类型,byte,short,long,int,char。其对应的二进制位数如下表:

 数据类型                           所占位数
      byte                                      8
      boolean                                8
      short                                   16
      int                                       32
      long                                    64
      float                                    32
      double                                64
      char                                    16

以byte类型的真值  ( 带符号为的机器数对应的10进制数值成为机器数的真值 )  为例子进行原码,反码和补码的讲解,:

原码:符号位加上真值绝对值的二进制表示形式;

反码:正数的反码是其本身,负数的反码是其真值原码的符号位不变,其余取反;

补码:正数的补码是其本身,负数的补码是其反码的最后一位加1。

那么计算机为什么要使用补码呢?

计算机被设计成了只能进行加法运算,减法就是加上一个负数,即: 1-1 = 1+(-1),因为让计算机识别最高的符号位比较麻烦,就验证除了补码的处理方式,很智慧的解决了二进制之间的加减法运算问题。

对于补码,也解决了反码中0有正负0两种情况,同时意味着,0有两种表示方式,这是不合理的,通过使用补码,-0就代表着-128,这样8位二进制就可以多表示了一个最低位的数-128了,一箭三雕,岂不乐哉。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。