Java中的16位桶移位

时间:2011-03-01 22:19:58

标签: java int bit-manipulation rotation shift

我正在尝试在Java中对int执行右旋(桶移位),例如

Input:  0000 0000 0110 1001
Output: 1000 0000 0011 0100

我知道我可以做一个正确的转换(>>),但是我无法弄清楚如何将它组合起来创建一个旋转(我很确定它是可能的!)。

我认为java.lang.Math中有一种方法,但我正在研究如何仅使用轮班。

有什么想法吗?

2 个答案:

答案 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)