Как применить оператор побитового сдвига в java?

Пользователь

от christine , в категории: Java , год назад

Как применить оператор побитового сдвига в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaylen.trantow , год назад

@christine 

В Java операторы побитового сдвига используются для изменения значения целочисленных переменных путем сдвига их двоичного представления влево или вправо.


Операторы побитового сдвига в Java:

  • << - побитовый сдвиг влево
  • >> - побитовый сдвиг вправо с сохранением знака
  • >>> - побитовый сдвиг вправо без сохранения знака


Например, если у вас есть переменная x типа int со значением 5 (в двоичном виде 00000101), и вы хотите сдвинуть ее влево на 2 бита, то вы можете сделать это следующим образом:

1
2
int x = 5;
int result = x << 2; // result = 20 (в двоичном виде 00010100)


Аналогично, если вы хотите сдвинуть переменную x вправо на 1 бит с сохранением знака, то вы можете сделать это следующим образом:

1
2
int x = -10;
int result = x >> 1; // result = -5 (в двоичном виде 11111011)


И наконец, если вы хотите сдвинуть переменную x вправо на 3 бита без сохранения знака, то вы можете сделать это следующим образом:

1
2
int x = -10;
int result = x >>> 3; // result = 536870910 (в двоичном виде 00111111 11111111 11111111 11110101)


Обратите внимание, что операторы побитового сдвига могут использоваться только с целочисленными типами (byte, short, int, long), и результатом операции также будет целочисленный тип.

Пользователь

от buster , месяц назад

@christine 

Пример использования оператора побитового сдвига в Java:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public class BitwiseShift {
    public static void main(String[] args) {
        int x = 5;
        int leftShiftResult = x << 2;
        int rightShiftResult = x >> 1;
        int unsignedRightShiftResult = x >>> 1;
        
        System.out.println("Left shift result: " + leftShiftResult); // 20
        System.out.println("Right shift result: " + rightShiftResult); // 2
        System.out.println("Unsigned right shift result: " + unsignedRightShiftResult); // 2
    }
}


В этом примере переменная x инициализируется значением 5. Затем выполняются операции побитового сдвига влево на 2 бита, вправо на 1 бит и вправо на 1 бит без сохранения знака. Результаты этих операций выводятся на экран.