栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从int到short可能的有损转换

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从int到short可能的有损转换

它不是开箱;这是“二进制数值提升”。
JLS的第5.6.2节规定:

当运算符将二进制数字提升应用于一对操作数时,每个操作数必须表示一个可转换为数字类型的值,以下规则适用:

  1. 如果任何操作数是引用类型,则将其进行拆箱转换(第5.1.8节)。

  2. 扩展原语转换(第5.1.2节)适用于转换以下规则指定的一个或两个操作数:

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

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

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

    • 否则,两个操作数都将转换为int类型

二进制数值提升是对某些运算符的操作数执行的:

  • 乘法运算符*,/和%(第15.17节)

  • 数值类型+和-的加法和减法运算符(第15.18.2节)

  • 数值比较运算符<,<=,>和> =(§15.20.1)

  • 数值相等运算符==和!=(§15.21.1)

  • 整数按位运算符&,^和| (第15.22.1节)

  • 在某些情况下,条件运算符?:(§15.25)

(强调我的)

当这些值相加/相乘时,它们将被提升为

int
数学运算之前的值。最后,可以
short
在分配回数组之前先回退到。

gx[x][y][z] = (short) (arr[x-1][y-1][z]-arr[x+1][y-1][z]+2*arr[x-1][y][z]    -2*arr[x+1][y][z]+arr[x-1][y+1][z]-arr[x+1][y+1][z]);

每次使用小于的原始数据类型进行操作时

int
(例如在
short
示例中),您都需要将其回退。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/515973.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号