7

有没有理由认为 Java 中的 >>(有符号)和 >>>(无符号)右位移运算符会执行不同的操作?我无法在我的机器上检测到任何差异。

这纯粹是一个学术问题;我敢肯定,它永远不会成为瓶颈。我知道:最好把你最想说的写出来;例如,使用 >> 除以 2。

我认为归结为哪些架构将哪些操作作为指令实现。

4

1 回答 1

4

不会。您的编译器会将这些转换为字节码,而 JVM 将为您的架构解释字节码。我认为可以安全地假设您的架构有一个指令集,其中包括在几个时钟周期内完成的两个操作。

无论如何,这些运算符的行为有所不同,因此您不能只是互换它们。

于 2010-03-26T21:11:28.833 回答