我试图在java中用两个字节执行模加法,结果得到第三个字节。
这是我正在使用的代码:
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。
我可以确定这个案子,但我不知道如何解决它。