变量数据类型转换问题

变量的数据类型转换问题:
* 分为两种:
  * 隐士数据类型:(小转大)
  * 小的数据类型的变量或者值,可以直接赋值给大的数据类型变量
  * 格式:大的数据类型 变量名 = 小的数据类型的变量或者值;
  * byte<short,char<int<long<float<double

public class Demo04StyleTrans {
    public static void main(String[] args) {
        //隐士数据类型转换:
        //格式:大的数据类型  变量名 = 小的数据类型的变量或者值;
        short s =100;
        int i = s;
        System.out.println(i);//100
        
        long l = 1000;
        System.out.println(l);//1000
        
        float f = 999F;
        System.out.println(f);//999.0
  }
}

强制数据类型转换:(小转大)
  * 大的数据类型的变量或者值,赋给小的数据类型变量。
  * 格式:小的数据类型 变量名 = (小的数据类型)大的数据类型变量或者值

public class Demo04StyleTrans {
    public static void main(String[] args) {
        //强制数据类型转换:(大转小)
        int a = 10;
        short b = (short)a;
        System.out.println(b);//10
        
        int c = (int)200L;
        System.out.println(c);
        }
    }                    

注意事项:1、如果原数据已经超出了接受数据的范围,不能转换,出现乱码

     2、如果short,char,byte,int类型在进行相互运算的时候,类型会自动提升为int类型。

public class Demo04StyleTrans {
    public static void main(String[] args) {
     //注意事项:1、如果原数据已经超出了接受数据的范围,不能转换,出现乱码
        short x = 150;
        byte y = (byte)x;
        System.out.println(y);//会出现一个乱的数字。-106
        //注意事项:2、如果short,char,byte,int类型在进行相互运算的时候,类型会自动提升为int类型。
        short m = 10;
        byte  n = 20;
        //short sum = m + n;//Type mismatch: cannot convert from int to short 类型不匹配:不能从int转换为short
        short sum = (short)(m+n);
        int sm = m + n;
        System.out.println(sum);
        System.out.println(sm);
  }
}

猜你喜欢

转载自www.cnblogs.com/Haidrens/p/9978770.html