【发布时间】:2012-04-26 19:37:10
【问题描述】:
在下面的代码中我有一个错误 “可能的精度损失 发现:int 要求:短”。 我理解错误的含义,但我只是想知道为什么我会得到它。当然,该函数应该返回一种短类型(我看不出可能有任何精度损失,代码应该返回一个 16 位整数)。谁能帮我解释一下为什么下面的代码似乎需要 int 类型?
static short a() {
short[] payload = {
100, 200, 300,
400, 500, 600,
700, 800, 900, 1000
};
short offset = 2;
return (payload[offset - 2] << 8 & 0xff00) + (payload[offset - 1] & 0xff);
}
谢谢!
【问题讨论】:
标签: java bit-manipulation precision