X >>> Y
有什么数学公式吗?我们有X >> y
和X << Y
的公式? 如果 sombody 说5 >>> 2
的值是多少,你将如何计算值而不将它们转换为二进制。
>>>
是逻辑或无符号的右移。
与>>
不同,是一个算术右移(并尊重符号),>>>
更多地将左操作数视为无符号值或位序列,而不是正常数字。 重要的是逻辑转换的位,而不是它们在 Java 中表示的有符号值。 所以一个纯粹的数学公式有点毫无意义,IMO。
但是,如果你坚持这样做,任何inta
的位 - 甚至是负数 - 都与a
+232的低32位相同。 所以对于a >>> b
,你可以找到它作为((a+232)mod 232)/2b。
您将遇到的大问题是 232(以及它和任何非负整数的总和)不适合int
。 您需要在某些位置使用long
(或double
)来增大值。 如果a
是一个long
,那么你需要学习一些关于BigInteger的知识。 (我什至不会费心去报道这一点。