美文网首页Android开发之JAVA篇
第二章 java基础(二进制与十进制的转换)

第二章 java基础(二进制与十进制的转换)

作者: 不用管我是谁 | 来源:发表于2017-04-19 15:27 被阅读0次

    —— 本文参照 Learn Java for Android Development (第三版)

    二进制 VS 十进制

    计算机处理数据是使用的二进制数字系统,也就是所有的数据都是使用两个数字表示的,那就是0和1。相反,我们人类在处理数据的时候使用的是十进制数字系统,也就是所有的数据都是使用0-9这10个数字表示的。

    在这里我们很有必要先讲一下二进制跟十进制之间的转换,如果你想把一个十进制表示的数字转换成用二进制表示,那么具体的操作步骤如下:
    1 把这个十进制整数当做一个系数
    2 直到这个系数为0的时候就停止操作
    3 取整数系数除以2以后得到的商作为新的系数,余数则用于二进制表示
    4 继续执行2操作的步骤
    举个实际的例子,假如你要求整数19用二进制怎么表示,具体的步骤如下:
    19/2 =9 余 1
    9/2 =4 余 1
    4/2 = 2 余0
    2/2 = 1 余0
    1/2 = 0 余1
    最开始得到的余数在低位,所以整数19的二进制表示方式就是 10011。

    反过来要把二进制转化成十进制,二进制转化为十进制需要从右往左进行,每一位表示的就是2的幂的值,最右边的表示2的0次幂,再往左就是1次幂,再往左就是2次幂,以此类推。

    如10011就等价于1 x 2^4 + 0 x 2^3 + 0 x 2^2 + 1 x 2^1 + 1 x 20.因为任何数的0次幂都是1,所以简化以后的结果是24 + 2^1 + 1,所以结果就是19.

    在上一篇当中我们提供了一张表用于表示基本数据类型的信息,其中有一列表示这种数据类型能表示的最大值和最小值,其中除了布尔类型以外,其他数据类型都有一个最大值和最小值的范围。

    字符的最大值和最小值是由Unicode决定,Unicode 0 表示的就是第一个Unicode 字符码。一个字符码其实跟具体的字符相对应的,它可以表示的就是一个单纯的字符,或者一个控制符(比如换行符),或者跟其他的字符码相结合表达一些新的意思。

    从字节整形、短整形、整形、长整形的表现方式我们可以看出来负数比正数要多一个(因为0不能算是正数),之所以会这样其实主要还是归咎于整形的定义。

    Page 40

    相关文章

      网友评论

        本文标题:第二章 java基础(二进制与十进制的转换)

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