我理解除按位左移之外的所有按位运算(特别是在Java中)。我已经梳理了“堆栈”并在不同的页面上阅读了许多“解释”,但我仍然不满意。这是一个非常复杂的概念,或者它不是很好理解和模糊。但是,我知道它在某种程度上必须是相关的,因为我已经看到Java算法(今天)确实使用左移运算符“<<”。所以,如果有人能用简单的英语打破这一点,那就太好了!
答案 0 :(得分:0)
左移一位将值中的所有位向左移动一位位置。在右侧自由的位置用第0位填充,最左边的位丢失。
这与将值乘以2的效果相同。
示例(为简单起见,仅使用8位):
original value 10010011
after shift left 00100110
如果向左移位n位,则重复n次(假设n小于字长)。对于n大于字长移动n%wordLength。