【发布时间】:2017-10-19 13:18:12
【问题描述】:
我正在尝试在右侧应用无符号移位,但找不到方法。有谁知道吗?
示例代码:
BigInteger bi;
bi.shiftRight(7) // equals >> 7
如何申请>>> 7?
重复?请大神,我没有答案。
【问题讨论】:
-
这样的运算符对 BigInteger 没有意义;您能否扩展您的问题以添加您想要使用此类运算符的内容,并给出一些预期输出的示例?
-
@DodgyCodeException:我也这么认为,但为什么不呢?正数可以像正常一样移动,但负数应该变成正数并被否定。 IOW,向右移动 4,0x87654321(负)将变为 0x08765432(正)。 BigIntegers 也可以模拟。
-
@RudyVelthuis “BigIntegers 也可以模拟。” - 如何?您作为示例显示的是位移 positive 数字。 -0x876543221 是负数,但 0x87654321 是正数。仅当存储为 32 位二进制补码时才被视为负数。但是,例如,如果它是 64 位长,则它不是负数。 BigIntegers 不是 32 位的,它们不是 64 位的,它们是“无限位”长的。所以对于 BigInteger,0xWhatever 总是正数。
-
我想知道那些将这个问题标记为重复的人是否真正正确地阅读这个问题?另一个问题没有回答这个问题。这个问题可能会有所帮助:stackoverflow.com/questions/34753668/…
标签: java biginteger