В следующем коде у меня ошибка "возможна потеря точности найдено: инт требуется: короткий". Я понимаю, что означает ошибка, но мне просто интересно, почему я ее получаю. Конечно, функция должна возвращать тип short (я не понимаю, как может быть потеря точности, код должен возвращать 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);
}
Спасибо!