16-битное смещение ствола на Яве - PullRequest
0 голосов
/ 02 марта 2011

Я пытаюсь повернуть вправо (смещение бочки) на int в Java, например,

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

Я знаю, что могу сделать правое смещение (>>), но я могу 'не могу понять, как объединить это, чтобы создать вращение (я уверен, что это возможно!).

Я думаю, что есть метод в java.lang.Math, но я пытаюсь понять, как использовать сменытолько.

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 02 марта 2011

Я не уверен, что есть одна операция для этого.Но что-то вроде:

int x = (x >> 1) | (x << 31)  // or 15 if you really did mean 16-bit

сработает.

0 голосов
/ 02 марта 2011
int rotated_by_one = ((value & 1)<<15) | (value >> 1)
...