Проблема в том, что типы Java всегда подписаны.
Таким образом, если у вас есть тип C без знака, который идет от 0 до 255, наименьший тип Java, который может представлять верхнюю половину этого диапазона, является коротким.
Альтернатива заключается в том, что вы перемещаете или каким-либо образом преобразуете uint8_t
, чтобы использовать отрицательные части byte
в Java, но семантика этого очень противоречива.