首页 > 编程语言 > 详细

JAVA加法运算++和+1的区别

时间:2021-02-27 10:41:56      阅读:56      评论:0      收藏:0      [点我收藏+]

JAVA加法运算++和+1的区别

Java整型的默认数据类型是int型,这就导致了在进行某些运算时会产生一些问题

public class Plus {
   public static void main(String[] args) {
       short s=10;
       s=s+1;
  }
}

上面的程序在运行时会报错

java: 不兼容的类型: 从int转换到short可能会有损失

原因是s是short类型的数据,而1默认是int类型的数据,二者相加会自动转换为int类型的数据,无法再用short类型数据接收

如果一定要用short接收,有两个办法

一是强制类型转换,将s+1转换为short类型

public class Plus {
   public static void main(String[] args) {
       short s=10;
       s=(short)(s+1);
       System.out.println(s);
  }
}

上述程序可以正常输出,输出结果为1

但是要注意转换的数据如果超过short的表示范围,会有精度损失

二是使用单目运算符++

public class Plus {
   public static void main(String[] args) {
       short s=10;
       s=s++;
       System.out.println(s);
  }
}

上述程序输出结果也为1,且不用进行类型转换

从汇编角度分析,我觉得原因可能是 short类型为16字节,和32字节的int型运算后数据变为32字节大小,此时即使高16位全为0机器也无法识别;而++运算short类型数据可能只进行了INC运算,不会增加位数



JAVA加法运算++和+1的区别

原文:https://www.cnblogs.com/writenow/p/14454780.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!