继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

javaday 1-5 变量和数据类型的转换

眼眸繁星
关注TA
已关注
手记 109
粉丝 7
获赞 59

不想吐槽验证码的事情了,被吞了2次,幸好复制了。



我们在使用变量时要注意以下问题:

1、作用域

         变量定义位于哪个大括号内,则它就只在这个大括号内有效。而且,同一个大括号内不能有相同的变量。

2、初始化值

         若变量没有初始化值,则该变量不能使用。

         可以不在定义时就给值,但要在使用它之前给初始化值。

 

         变量的定义格式:

                  a.数据类型 变量名 = 初始化值;

                  b.数据类型 变量名;

                     变量名 = 初始化值;

[代码]xml代码:

?

1

2

3

4

int a = 10;

 

int b;

b = 20;

 

3、在一行上最好只定义一个变量,为了清楚,美观??

        

[代码]xml代码:

?

1

2

3

int a = 10;

int b = 20;

int c = 30;

 

                            数据的运算,转换

数据的默认转换:

         byte,short,charint longfloatdouble

注意:byte,short,char 之间不会相互转换,它们参与运算时,会首先转换成int类型

 

         long8个字节   float4个字节  (那为什么 long 转成 float ?)

         A.它们底层的存储结构不同

         B.float表示的数据范围比long的范围要大  

                  long2^63-1

                  float:  3.4*10^38 > 2^63-1

 

float类型数字在计算机中用4个字节存储。遵循IEEE-754格式标准:

         一个浮点数有2部分组成:底数m和指数e

底数部分 使用二进制数来表示此浮点数的实际值

指数部分 占用8bit的二进制数,可表示数值范围为0-255

但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。

所以,float类型的指数可从-126到128

一般来说,在进行运算的时候,要求参与运算的变量的数据类型必须一致。

l例子:一个byte类型,一个int类型,进行加法运算

[代码]xml代码:

?

1

2

3

4

5

6

7

byte a = 3;

int b = 4;

byte c =   a+b;                       /*有问题,因为计算机进行运算的时候,它会把数据变为补码,此处是变为byte 3 的补码 : 00000011 ,int 4 的补码 : 00000000 X 3 00000100

而c是byte类型,所以4的补码只截取后面的8位,再跟3的补码进行相加:00000111 = 7

PS:这个例子没有损失精度,但是,若是int不是4,是别的数呢?那前面被截取后,会损失精度的。   */

 

int d = a+b;  //没问题

在上面的例子,有人强迫症,一定要用 byte c = a+b;  那么此处我们就应该用强制转换。

强制转换格式:   目标数据类型 变量=(目标数据类型)(被转换的数据);  (转换的数据若是1个,则不用括号)

[代码]xml代码:

?

1

2

3

4

byte a = 3;

int b = 4;

byte c = (byte) (a+b);

System.out.println(c);

 

 

下面说下double和float的转换:

[代码]xml代码:

?

1

2

double a = 12.123412;

float b = (float) a;

[代码]xml代码:

?

1

2

3

4

double a = 12.123123;

float b1 = (float)a;//其实是通过double类型转换过来的float类

                            //型,可能会有精度损失

float b2 = 12.123123F;//直接赋予b2一个flaot类型,记得加F

原文链接:http://www.apkbus.com/blog-833059-61602.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP