为什么Java中短整数除法的结果类型不是短整数?

为什么Java中短整数除法的结果类型不是短整数?,第1张

为什么Java中短整数除法的结果类型不是短整数?

从Java规范:

5.6.2二进制数值提升

运算符将二进制数值提升应用于一对 *** 作数时,每个 *** 作数必须表示一个数值类型的值,以下规则按顺序适用,并根据需要使用加宽转换(第5.1.2节)来转换 *** 作数:

如果一个 *** 作数的类型为double,则另一个将转换为double。

否则,如果其中一个 *** 作数的类型为float,则另一个将转换为float。

否则,如果其中一个 *** 作数的类型为long,则另一个将转换为long。

否则,两个 *** 作数都将转换为int类型。

对于二进制运算,会将小整数类型提升为

int
,运算结果为
int


编辑:
为什么会这样?简短的答案是Java从C复制了此行为。更长的答案可能与以下事实有关:所有现代机器都至少执行32位本机计算,而实际上对于某些机器而言,执行8位运算和16位运算。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5479049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存