基本数据类型之间的运算规则

基本数据类型之间的运算规则

前提:这里只讨论7种数据类型(boolean不在讨论范围内)

一、自动类型提升

当容量小的数据类型的变量和容量大的数据类型的变量做运算的时候,结果自动提升为容量大的或者容量更大的数据类型

byte、char、short、int->long->float->double
说明:此处的容量大小仅指数的大小和范围,并不是数据类型所占字节的大小

例1:

		byte b1 = 123;
		int i1 = 1234;
		byte i2 = b1 + i1;
		System.out.println(i2);

编译不通过
在这里插入图片描述

例2:

        byte b1 = 123;
		int i1 = 1234;
		int i2 = b1 + i1;
		System.out.println(i2);

编译通过
编译通过

特别的:当byte、char、short这三个数据类型一起运算时,变量的数据类型应该为int及其以上(包括它们三个自己和自己运算)

例3:

		byte b = 5;
		short s = 3;
		short t = s + b;
		System.out.println(t);

编译不通过
在这里插入图片描述

例4:

		char c1 = 'a';//a为97
		byte b2 = 123;
		int i3 = c1 + b2;
		System.out.println(i3);
		float f2 = c1 + b2;
		System.out.println(f2);

编译通过
编译通过

二、强制类型转换

其实就是自动类型提升的一种逆运算

需要使用强转符()

例5:

		long l1 = 125l;
		short s2 ;
		s2 = (short)l1;
		System.out.println(s2);

编译通过
在这里插入图片描述

有可能会导致精度损失

例6:

		double d2 = 123.4;
		int i4 ; 
		i4 = (int)d2;
		System.out.println(i4);

编译通过,但是损失了精度
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值