java short int 转换_基本类型'short'-Java中的强制转换

Java编程中,从short到int、long、float、double或decimal有预定义的隐式转换,但不能隐式将大存储大小的数值类型转为short。在进行short变量的算术运算时,结果默认为int,需要强制转换回short。例如,`short z = (short)(x + y);`。Java的这种设计确保了程序在不同平台上的结果一致性,而C语言则允许根据目标处理器的特性产生更高效的代码,但可能在不同平台上产生不同的结果。
摘要由CSDN通过智能技术生成

小编典典

正如上文短C# (也为其他语言编译器以及Java一样)

从short到int,long,float,double或decimal进行了预定义的隐式转换。

你不能将较大存储大小的非文字数字类型隐式转换为短类型(有关整数类型的存储大小,请参阅“整数类型表”)。例如,考虑以下两个短变量x和y:

short x = 5, y = 12;

以下赋值语句将产生编译错误,因为赋值运算符右侧的算术表达式默认情况下计算为int。

short z = x + y; // Error: no conversion from int to short

要解决此问题,请使用强制转换:

short z = (short)(x + y); // OK: explicit conversion

尽管目标变量具有相同的存储大小或更大的存储大小,但是可以使用以下语句:

int m = x + y;

long n = x + y;

一个很好的后续问题是:

“为什么赋值运算符右侧的算术表达式默认计算为int”?

第一个答案可以在以下位置找到:

分类并正式验证整数常量折叠

在Java语言规范定义究竟如何整数来表示,如何整数算术表达式进行评估。这是Java的重要属性,因为该编程语言已设计为可用于Internet上的分布式应用程序。需要Java程序独立于执行它的目标机器来产生相同的结果。

相比之下,C(以及大多数广泛使用的命令式和面向对象编程语言)更加草率,并保留了许多重要特征。这种不正确的语

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值