方法1: バイトを符号なし整数に変換してからキャストする方法
byte negativeByte = -50;
int positiveInt = (int) (negativeByte & 0xFF);
System.out.println(positiveInt);
この方法では、負のバイト値を符号なし整数に変換します。バイト値は8ビットで表されるため、符号なし整数に変換すると32ビットの整数となります。バイト値を符号なし整数に変換するには、バイト値と0xFF(16進数で255に相当)のビット単位の論理積(AND)を取ります。その後、結果をint型にキャストします。
方法2: バイトを一時的にショート型にキャストしてからint型に変換する方法
byte negativeByte = -50;
int positiveInt = (int) (short) negativeByte & 0xFFFF;
System.out.println(positiveInt);
この方法では、バイト値を一時的にショート型にキャストし、その後int型にキャストします。ショート型は16ビットの符号付き整数なので、バイト値をショート型にキャストすると符号拡張が行われます。その後、結果をint型にキャストし、正の整数値を得ることができます。
どちらの方法でも、負のバイト値を正の整数値に変換することができます。コード例を使用して、自分の要件に合った方法を選択してください。