-
Notifications
You must be signed in to change notification settings - Fork 0
/
test2_record.txt
71 lines (69 loc) · 2.56 KB
/
test2_record.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
**注:该记录需与实验要求结合看**
一、实验目的和要求
Java 语言的数据类型比较特殊,分成基础数据类型与引用数据类型,其中基础数据类型四类八种。Java语言是强类型的编程语言,在编程中出现数据类型不符的时候,系统无法编译程序。本实验的重点是通过练习掌握基础数据类型的使用方式。
二、实验内容和原理
Java语言分成基础数据类型与引用数据类型,本实验的重点是分析基础类型中出现的情况与处理方式。参考下面的代码分析错误原因与解决方法。要求说明原因。
通过测试下面的代码,分析数据类型的使用方法
public class Test
{
public static void main(String[]args)
{
int i,j;
float f1=0.1;
float f2=123;
double d1=2e20;
double d2=124;
byte b1=1,b2=2;
byte b3=129;
j=j+10;
i=i/10;
i=i*0.1;
char c1='a', c2=125;
byte b=b1-b2;
char c=c1+c2-1;
float f3=f1+f2;
float f4=f1+f2*0.1;
double d=d
要求修改并说明原因,增加代码验证修改的结果。
三、程序代码(要求有注释说明)
public class demo
{
public static void main(String[]args)
{
int i=0,j=0;//未初始化
float f1=0.1f;//0.1为double型,需要float
float f2=123.0f;//123为int型,需要float
double d1=2e20;
double d2=124.0;//124为int型,需要double
byte b1=1,b2=2;
byte b3=(byte)129;//byte范围为-128~127,超过这个范围即为int型,需要强转
j=j+10;
i=i/10;
i=(int)(i*0.1);//i乘0.1后为double型,需要强转
char c1='a', c2=125;//下面c的结果会出错,c1对照ASCII为97与125相加,超过了ASCII最大,建议修改。
byte b=(byte)(b1-b2);//byte类型在相减的时候,会自动转换成int类型
char c=(char)(c1+c2-1); //不指定类型默认对照ASCII表转换为int型数据进行相加减,需要强转。
float f3=f1+f2;
float f4=(float)(f1+f2*0.1);//乘0.1是double类型需要强转
double d=d1*i+j;
float f=(float)(d1*5+d2);
System.out.println(b3);
System.out.println(i);
System.out.println(b);
System.out.println(c);
System.out.println(f3);
System.out.println(f4);
System.out.println(d);
System.out.println(f);
}
}
四、实验结果截屏图
略
五、实验结果与分析
byte b3=(byte)129=-127 byte型范围-128~127;为129时溢出
int i=0 i=(int)(i*0.1) 0乘任何数等于0
b1=1,b2=2 byte b=(byte)(b1-b2)=-1 1-2=-1
char c1='a',c2=125 char c=(char)(c1+c2-1) a ASCII表对应十进制为97,与125相加减1大于ASCII表最大值,因而输出?
f1=0.1f; float f2=123.0f; f3=f1+f2=123.1
f1=0.1f; float f2=123.0f f4=(float)(f1+f2*0.1)=12.4
i=0,j=10 double d=d1*i+j=10.0