java 按位左移
java bitwise left shift
除了按位左移,我理解所有的按位运算(特别是 Java)。我梳理了 "stacks" 并阅读了不同页面上的许多 "explanations",但我仍然不满意。这要么是一个极其复杂的概念,要么不是很好理解和晦涩难懂。但是,我知道它在某种程度上一定是相关的,因为我已经看到 Java 算法(今天)确实使用了左移运算符“<<”。因此,如果有人能用简单的英语对此进行分解,那就太好了!
左移一位将值中的所有位向左移动一位位置。右边空出来的位置用bit 0填充,最左边的bit丢了。
这与将值乘以 2 的效果相同。
示例(为简单起见仅使用 8 位):
original value 10010011
after shift left 00100110
如果左移n位,重复n次即可(前提是n小于字长)。对于 n 大于字长的 n % wordLength.
除了按位左移,我理解所有的按位运算(特别是 Java)。我梳理了 "stacks" 并阅读了不同页面上的许多 "explanations",但我仍然不满意。这要么是一个极其复杂的概念,要么不是很好理解和晦涩难懂。但是,我知道它在某种程度上一定是相关的,因为我已经看到 Java 算法(今天)确实使用了左移运算符“<<”。因此,如果有人能用简单的英语对此进行分解,那就太好了!
左移一位将值中的所有位向左移动一位位置。右边空出来的位置用bit 0填充,最左边的bit丢了。
这与将值乘以 2 的效果相同。
示例(为简单起见仅使用 8 位):
original value 10010011
after shift left 00100110
如果左移n位,重复n次即可(前提是n小于字长)。对于 n 大于字长的 n % wordLength.