符号なし整数の 32 ビット除算を実行する必要があるインタープリターを作成しました。Java では、次のように実行できます。
reg[a] = (int) ((reg[b] & 0xFFFFFFFFL) / (reg[c] & 0xFFFFFFFFL));
しかし、long への変換と int への変換は避けたいと思います。Java は、その特殊なケースに対して符号なし右シフト演算子を既に提供している>>>
ため、同じ方法で符号なし除算を行う賢い方法があるかもしれません。
2 の補数が機能するため、加算と乗算は正常に機能することに注意してください。
Javaでこれを行うためのより良い方法はありますか?