Java变量 数据类型转换

实例:

class Demo3{

public static void main(String[] args){

/*定义四种整数的数据类型*/

byte b = 127;

short s = 50;

int i = 100;

long l = 10000l;

//常量5默认是int类型,b+5可能超出byte的最大值,所以jvm定义byte和short和char

//变量参与运算的时候数据类型会提升到int

  int bresult  = b + 5;

  //short sresult = s + 1;错误

  int sresult = s + 1;

  System.out.println(bresult); //132

  System.out.println(sresult); //51

//定义一个a字符,每一个字符都对应一个ascii码,在字符参与运算时是用ascii吗参与运算

char c = 'a';

//char变量参与运算的时候数据类型会提升到int

int cresult = c + 3;

System.out.println(cresult); //100

//byte和short和char直接运算也会转换成int

int sresult1 = b + s;

System.out.println(sresult1); //177


//常量的计算可以使用byte,short,char接收(常量的计算结果不能溢出)

byte iresult1 = 4+3;

System.out.println(iresult1); // 7

int i1 = 2147483647;

//如果int计算时发生溢出就会变为负值,不会自动转换成long

int i2 = i1 + 100;

System.out.println(i2); // -2147483549

long lresult1 = i1 + l;

System.out.println(lresult1); // 2147493647

float f = 1.5f;

//float类型和long类型计算,会转换成float,

float fresult = f + l;

System.out.println(fresult); // 10001.5

double d = 10.5d;

//float类型和double数据类型计算时,会转换成double

double dresult = d + f;

System.out.println(dresult); // 12.0

/////////////////////////////////////////////////////////////强制转换

//在java程序中同一个范围内变量名字不能重复

int i3 = 97;

//把int类型的数据强制转换成byte

byte b3 = (byte)i3;

//把int类型的数据强制转换成short

short s3 = (short)i3;

//把int类型的数据强制转换成char

char c3 = (char)i3;

System.out.println(b3);  // 97

System.out.println(s3); // 97

System.out.println(c3); // a

  int i4 = 202;

  //注意如果被转换的值超过了要转换的值的最大值,转换时精度就损失了,不准确。

  byte b4 = (byte)i4;

  System.out.println(b4); // -56

  //把long类型的数据转换成int

  long l4 = 10000l;

  int i5 = (int)l4;

  System.out.println(i5); //10000


  //把小数float转换成整型,直接把小数舍弃(非四舍五入)

  float f1 = 12.5f;

  int i6 = (int)f1;

  System.out.println(i6); //12

  //把小数double转换成整型,直接把小数舍弃(非四舍五入)

  double d1 = 15.5f;

  int i7 = (int)d1;

  System.out.println(i7); // 15

}

}

你可能感兴趣的:(Java变量 数据类型转换)