关于JAVA中整型转换的一个疑问

2025-04-13 11:08:49
推荐回答(1个)
回答1:

int 类型32位长度,short是16位
数据存储时是按补码形式二进制,如果首位是0,为正数,首位为1,为负数
当你把一个32位的数截取后面的16位,会发生那16位的首位跟原来的32位的首位不同。
也就导致正数截取后为负数,负数截取后是正数。

一般不建议高精度向低精度转换