В Java, у меня есть следующий код:Выполнить побитовое ИЛИ без расширения знака в Java
byte lo = 0x88;
byte hi = 0x0;
short x = 0;
x |= lo;
x |= (short) ((short) hi << 8); // FIXME double cast ??
return x;
После первой операции, значение в кратко- является 0xff88
. Я понимаю, это потому, что Java не поддерживает беззнаковые числа.
Как я могу заставить его игнорировать знак? Я не использую эти данные непосредственно в Java-коде, так что это не имеет значения, не так ли?
'byte lo = 0x88;' не компилируется и его значение находится за пределами диапазона чисел, представляемых 'byte'. – manouti
@ AR.3 Я хотел бы знать, как избежать знака. –
Ваш текущий код не компилируется. Не могли бы вы привести полный рабочий пример? – Bubletan