【问题标题】:java bitwise left shift [duplicate]java按位左移[重复]
【发布时间】:2016-01-29 15:01:47
【问题描述】:

我了解除按位左移之外的所有按位运算(特别是在 Java 中)。我已经梳理了“堆栈”并在不同的页面上阅读了许多“解释”,但我仍然不满意。要么这是一个极其复杂的概念,要么没有很好地理解和模糊。但是,我知道它在某种程度上一定是相关的,因为我已经看到(今天)确实使用左移运算符“

【问题讨论】:

  • 你懂右移却不懂左移?
  • @khelwood 虽然我能猜出你的意思,但如果你只说出你第一次的感受而不用代码说话,生活会更好......
  • 我不是在暗示什么。我对您的断言感到困惑,即您了解所有其他按位运算(逻辑上必须包括右移),但您对左移的了解还不够,甚至无法询问有关它的具体问题。我想验证您是否了解右移,因为这些知识将使解释左移更容易。
  • @Mishax Aaaa 和 Bob 是我的叔叔。感谢您的链接。这解除了我所有不愉快的困惑 :) 不知道为什么我自己找不到它,但我很感激那个出色的帖子。谢谢!
  • 残酷的反对票!好笑!我希望每一天都有美好的一天:)

标签: java bit-manipulation bitwise-operators bit-shift


【解决方案1】:

左移一位将值中的所有位向左移动一位。右边空闲的位置用bit 0填充,最左边的bit丢失。

这与将值乘以 2 的效果相同。

示例(为简单起见仅使用 8 位):

original value     10010011
after shift left   00100110

如果左移 n 位,只需重复 n 次(前提是 n 小于字长)。对于大于字长的 n 移动 n % wordLength。

【讨论】:

  • 难道没有更多的东西吗?是不是有某些条件会导致数字的值变得不确定等等?
  • 我认为我可能想多了。那好吧!谢谢亨利。这绝对是重复的,但我选择您的回答作为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多