Java で 2 バイトのモジュロ加算を実行しようとしていますが、結果として 3 番目のバイトが取得されます。
私が使用しているコードは次のとおりです。
public static byte modAdd(byte byte1,byte byte2){
int int1 = ((int)byte1)+128;
int int2 = ((int)byte2)+128;
int outNum = int1+int2;
if(outNum>255){
outNum-=255;
}
outNum-=128;
return (byte)outNum;
}
ただし、これには問題があります。byte1 が 0x7F で、byte2 が 0x00 以外の場合、モジュロ減算コードは 0x7F を返さず、代わりに 0x80 を返します。
ケースを特定できますが、それを修正する方法がわかりません。