我编写了一个解释器,要求我对无符号整数执行 32 位除法。在 Java 中,我可以这样做:
reg[a] = (int) ((reg[b] & 0xFFFFFFFFL) / (reg[c] & 0xFFFFFFFFL));
但我想避免转换为 long 并返回 int。Java 已经为这种特殊情况提供了无符号右移运算符>>>
,因此也许有一种聪明的方法可以以相同的方式进行无符号除法。
请注意,加法和乘法可以正常工作,因为二进制的补码可以正常工作。
Java中有没有更好的方法来做到这一点?