为什么我们需要在java中使用shift运算符?

2022-09-02 01:27:19
  1. 使用 Shift 运算符而不是使用除法和乘法的目的是什么?

  2. 使用轮班操作员还有其他好处吗?

  3. 应该在哪里尝试使用轮班操作员?


答案 1

除法和乘法并不是位移运算符的真正用途。它们是一些喜欢应用的过时的“优化”。

它们是位操作,在整数值内的位级别工作时是完全必要的。

例如,假设我有两个字节,它们是两字节(16 位)无符号值的高阶和低阶字节。假设您需要构建该值。在Java中,这是:

int high = ...;
int low = ...;
int twoByteValue = (high << 8) | low;

否则,如果没有轮班操作员,您就无法做到这一点。

要回答您的问题:您可以在需要使用它们的地方使用它们!而不是其他地方。


答案 2

shift 运算符在执行逻辑位运算时使用,而不是数学运算。

它可以用于速度,在处理2的幂操作数时,它比除法/乘法快得多,但是代码的清晰度通常比原始速度更可取。


推荐