我试图在右侧应用无符号的移位,但我找不到这样做的方法。有谁知道吗?
示例代码:
BigInteger bi;
bi.shiftRight(7) // equals >> 7
如何申请>>> 7
?
重复?请stahp,我没有答案。
答案 0 :(得分:2)
正如BigInteger javadocs所说:
省略了无符号右移运算符(>>>),因为此操作与此类提供的“无限字大小”抽象相结合没有多大意义。
答案 1 :(得分:1)
如果它是否定的,你总是可以否定。
or
注意:请记住private void test(String[] args) {
test(BigInteger.ONE.shiftLeft(10));
test(BigInteger.valueOf(-50));
}
private void test(BigInteger bigInteger) {
test1(bigInteger);
test1(bigInteger.negate());
}
private void test1(BigInteger bi) {
System.out.println(bi.toString(2)+" >> 5 = "+bi.shiftRight(5).toString(2));
}
不可变所以如果你对它们进行数学运算,你必须保留返回的结果,因为数学不会修改数值,它返回计算结果。
答案 2 :(得分:0)
我建议使用一种unsigned int int,以便允许使用运算符,并确保数据只是未签名。