为什么我们需要在java中使用shift运算符?
使用 Shift 运算符而不是使用除法和乘法的目的是什么?
使用轮班操作员还有其他好处吗?
应该在哪里尝试使用轮班操作员?
使用 Shift 运算符而不是使用除法和乘法的目的是什么?
使用轮班操作员还有其他好处吗?
应该在哪里尝试使用轮班操作员?
除法和乘法并不是位移运算符的真正用途。它们是一些喜欢应用的过时的“优化”。
它们是位操作,在整数值内的位级别工作时是完全必要的。
例如,假设我有两个字节,它们是两字节(16 位)无符号值的高阶和低阶字节。假设您需要构建该值。在Java中,这是:
int high = ...;
int low = ...;
int twoByteValue = (high << 8) | low;
否则,如果没有轮班操作员,您就无法做到这一点。
要回答您的问题:您可以在需要使用它们的地方使用它们!而不是其他地方。
shift 运算符在执行逻辑位运算时使用,而不是数学运算。
它可以用于速度,在处理2的幂操作数时,它比除法/乘法快得多,但是代码的清晰度通常比原始速度更可取。