我正在尝试在Java中对int执行右旋(桶移位),例如
Input: 0000 0000 0110 1001
Output: 1000 0000 0011 0100
我知道我可以做一个正确的转换(>>
),但是我无法弄清楚如何将它组合起来创建一个旋转(我很确定它是可能的!)。
我认为java.lang.Math
中有一种方法,但我正在研究如何仅使用轮班。
有什么想法吗?
答案 0 :(得分:4)
我不确定是否只有一个操作。但是类似的东西:
int x = (x >> 1) | (x << 31) // or 15 if you really did mean 16-bit
会做到这一点。
答案 1 :(得分:0)
int rotated_by_one = ((value & 1)<<15) | (value >> 1)