欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据类型转换

程序员文章站 2022-03-18 09:34:55
...

理解数据类型的自动转换:

将取值范围小的类型自动提升为范围大的类型,如:

byte、short、char→int→long→float→double
//一个int类型变量和一个byte类型变量进行加法运算,结果会是什么数据类型?
public static void main(String[] args){
     int i=1;
     byte b=2;
     //byte x=b+i;  //报错
     //int类型和byte类型运算,结果为int类型
     int a=i+b;
     System.out.println(a);
}

数据类型转换

理解数据类型的强制转换:

将取值范围大的类型强制转换成取值范围小的类型

强制转换的格式 数据类型 变量名=(数据类型)被转数据值; int a=(int)1.5;
public static void main(String[] args){
       //short类型变量,内存中2个字节
       short s=2;
       int a=2;
       /*
        出现编译失败
        s和a做运算的时候,a是int类型,s会被提升为int类型
        s+a的结果会是int类型,将结果在赋值回short类型时发生错误
        short内存2个字节,int类型内存4个字节
        必须将int强制转换为short才能完成赋值
        */
        s=s+a;//编译失败
        s=(short)(s+a);//编译成功
}
数据类型转换

强烈注意:

  • 浮点转整数,直接取消小数点,可能造成数据损失精度。
  • int 强制转换为 short 砍掉2个字节,可能造成数据丢失。

ASCLL编码表:

数据类型转换

理解char类型和int类型的运算原理:

public static void main(String[] args){
      char ch='A';                 //定义char类型的变量ch为a
      char ch1=(char)(ch+32);      //强制转换字符型加上32
      System.out.println(ch1);     //输出ch1,结果为小写'a'
}