Java的变量相关

变量是在一个范围内的可变的值。

要点:

数据类型(确定变量的值的类型)

一个字节里面8个位,每个位里存储0101这样的二进制的补码表示用来数据,一个字节的数据类型的第一个位是符号位,表示正负。

数据类型 byte  short  int  long  float  double  char  boolean

字节数   1    2    4     8   4     8    2      1

在计算机内存储的是数据的补码形式,第1位是符号位,负数的补码等于它的反码+1,所以范围分别是:

    -2^8~2^7-1 ...................

关于精度:

什么精度?

  使用补码的时候,第一个字节的第一个位表示的是符号位,代表正负,这个可能就表示的是精度。所以,当将长的数据类型直接使用短的数据类型接受的话会报错,可能丢失精度,也就是前面的字节被抛弃了。

 

 

变量的运算:

同一数据类型进行操作,就是针对其补码的操作,当获取的补码位数超过原位数的时候,需要更改接受的数据类型,以报错得到的数据。

不同的数据类型进行运算,现将小的数据类型转化为大的数据类型,再使用大的数据类型进行操作。一般获取的值都是属于大的数据类型。这就是变量的隐式转换。

强制类型转换(大转小)

就是截取大的类型的后面几个字节让字节数等于小的字节数,这样就可以被小的范围接受了。

强制转换可能出现损失精度的问题。

 

posted @ 2016-05-21 20:26  guodaxia  阅读(179)  评论(0编辑  收藏  举报