美文网首页Java初学者
Java之整型数据存放

Java之整型数据存放

作者: 一笑春来 | 来源:发表于2017-09-02 08:03 被阅读0次

    源码

    在计算机中,数据以二进制的形式存放。所谓二进制,即0与1,逢2进1。同十进制的逢10进1一个道理。

    以byte类型为例:15的二进制存放形式为

    0 000 1111。表示1*2^3+1*2^2+1*2^1+1*2^0=15。其中最高位为符号位,正数符号位为0,负数符号位为1。byte类型所能表示的范围即-2^7~2^7-1,即-128~127。

    采用这种编码方式,与计算机而言,进行基本的算术运算都很困难。如以1+(-1)=00000001+1000 0001=1000 0010=-2。为了解决这一问题,反码诞生。

    反码

    正数的反码是它的源码,负数的反码是在源码的基础上除符号位外,其余每位按位取反。例如以-15表示:-15=10001111_源码=11110000_反码。这样一来:1+ -1=00000001+11111110=11111111_反码=10000000_源码=0。这样一来,一个新的问题诞生了:0的表示方式有两种00000000与10000000。为了解决这一问题,补码诞生。

    补码

    正数的补码是它的源码,负数的补码是在其反码的基础上加1得到。如此一来:1+ -1=00000001+11111111_补码=00000000_补码=00000000_源码。这一,0的编码方式就只有这一种,故表示范围为-128~127。

    这里,需要注意的是将补码转换为源码的过程为:按位取反,再加1。

    未完待续

    相关文章

      网友评论

        本文标题:Java之整型数据存放

        本文链接:https://www.haomeiwen.com/subject/hwuljxtx.html