【发布时间】:2019-04-28 07:50:01
【问题描述】:
我目前正在学习按位运算,我的任务是对 4 位整数进行左旋转。
我的 4 位左旋转代码是
private static int BITS_IN_INTEGER = 4;
private static int leftRotate(int x, int n) {
return (x << n) | (x >> (BITS_IN_INTEGER - n));
}
我想进行 4 位循环移位以在旋转后保持为 4 位,但似乎无法理解它是如何工作的。
示例:左旋转 1 位后的 10 (1010) 会给我 5 (0101) 但它给我的值是 21,这比我的 4 位多。
任何帮助我理解这个问题将不胜感激!
【问题讨论】:
-
将 1010 向左旋转 1 得到 10100。将其向右旋转 1 将得到 101。
-
有没有办法让它在左旋转后保持4位?
标签: java bitwise-operators bit