黑马程序员--02常量和进制的学习

来源:互联网 发布:mysql source失败 编辑:程序博客网 时间:2024/06/16 19:30

  ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

一、常量的类型

    1.整数常量,就是所有的整数。比如1,222,33。

    2.小数常量,就是所有的小数,比如-22.2,33.33

    3.布尔型常量,这只包含2个TRUE,false

    4.字符型常量,这个就是:'A','B',‘你’。字符型常量可以是汉字的。

    5.字符串型常量,"yamade","burnning".

    6.null型常量,这个在对象中很常用。

二、三种进制

    1.二进制,很好理解逢二进一。

    (一)、简单的二进制加法运算

     0000    0101

  + 0010   1101

---------------------------

     0011     0010

     (二)、二进制的负数,二进制的负数是高位全部用1来补齐,比如-110

    我们知道110的二进制是

   0000 0000 0000 0000 0000 0000  0110 1110 

 那么-110就是110取反在+1

    110取反就等于

    1111 1111 1111 1111 1111 1111 1001 0001

+ 0000 0000 0000 0000 0000 0000 0000 0001

----------------------------------

    1111 1111 1111 1111 1111 1111 1001 0010

我们用地代码来验证下是否正确。

class BinaryDemo{public static void main(String[] args){{    System.out.println(Integer.toBinaryString(110));    System.out.println(Integer.toBinaryString(-110));    }    }}

可以看到我们计算是正确的。

(三)、二进制转十进制、八进制、十六进制

     二进制转十进制是比较简单的。0101=2(0次幂)+2(2次幂)=5。在复杂点的1111 1111=2(0次幂)+....+2(7次幂)=255

class BinaryDemo{public static void main(String[] args){{    System.out.println(Integer.toBinaryString(5));    System.out.println(Integer.toBinaryString(255));    }    }}

可以看到是正确的。

   二进制转十六进制和八进制分别是取四位,三位进行转换。比如:1101转换十六进制=2(0)+2(2)+2(3)=1+4+8=13=0XD, 转换八进制,取3位=15.现在验证下:

class BinaryDemo{public static void main(String[] args){{int i=015;int j=0xD;    System.out.println(i);    System.out.println(j);    }    }}

也是正确的

(二)、八进制、十六进制。按照名字来理解就是8进1,16进1。需要注意的是16进制0-9是正常表示的。10,11,12,13,14,15是用字母A-F来表示的。

   他们之间的转换,我现在的理解都是通过二进制作为中间件来转换,然后再去其他进制。万能的二进制。


三、变量的学习

    变量基本数据类型一共有八种分别是:byte,short,int,long,float,double,bool,char。下这里需要注意的整数型变量有byte,short,int,long,浮点型主要是floa,double

。这里需要记住这些变量的范围和在何处使用。

byte、short、int、long都是表示整数的,只不过他们的取值范围不一样。
byte(字节类型) 一个byte 8位,取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)默认是0
short(短整型) 一个short 16位,取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)默认是0
int(整型)        一个int 32位,取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)默认是0
long(长整型)   一个long 64位,取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)默认是0L或0l推荐用大写;

char型变量,由16位组成。所以他可以是用(65535)个不同的字符可以用。这里需要注意char和整形变量之间经常是互转的。

float浮点型变量,它是由于32位组成

double浮点型变量,它是由64位组成的,系统默认浮点型变量是double。

1、当整数类型的数据使用字面量赋值的时候,默认值为int类型,就是直接使用0或者其他数字的时候,值的类型为int类型,所以当使用    long a = 0这种赋值方式的时候,JVM内部存在数据转换。
2、浮点类型的数据使用字面量赋值的时候,默认值为double类型,就是当字面两出现的时候,JVM会使用double类型的数据类型。

class VarDemo{public static void main(String[] args){{byte a=127;int b=a;float c=3.141f;double e=c;char f='A';System.out.println(a);System.out.println(b=a+1);System.out.println(c);System.out.println(c+e);System.out.println((char)(f+(long)e+(short)c));    }    }}

从中我们可以看到byte的赋值范围最小,float和double的变量相加精度会增加。然后就是char型和整数型的自动转化,这里我么就要学会估算数据大概的范围是,我认为这很有必要,未来的软件开发前期对于软件的规划肯定会有相关的考虑,如果前期做的比较好,可能后期会节省大量的修改维护功夫

  ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

0 0