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

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

от narciso , в категории: Java , 2 месяца назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

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

@narciso 

В Java, операторы побитового сдвига представлены как << (левый сдвиг), >> (арифметический правый сдвиг) и >>> (логический правый сдвиг).

  1. Левый сдвиг (<<) умножает число на 2 в степени n, где n - количество сдвигаемых разрядов. Например:
1
2
int a = 5;              // 0000 0101
int b = a << 2;         // 0001 0100 (20)


  1. Арифметический правый сдвиг (>>) делит число на 2 в степени n, где n - количество сдвигаемых разрядов. При этом знак числа сохраняется. Например:
1
2
int a = -10;            // 1111 1111 1111 1111 1111 1111 1111 0110
int b = a >> 3;         // 1111 1111 1111 1111 1111 1111 1111 1110 (-2)


  1. Логический правый сдвиг (>>>) также делит число на 2 в степени n, но при этом знак числа игнорируется и заполняется нулями. Например:
1
2
int a = -10;            // 1111 1111 1111 1111 1111 1111 1111 0110
int b = a >>> 3;        // 0001 1111 1111 1111 1111 1111 1111 1101 (536870910)


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