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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от dayna , год назад

@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.

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

от yasmine , 8 месяцев назад

@narciso 

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
public class BitwiseShiftExample {
    public static void main(String[] args) {
        int a = 5;              
        int b = a << 2;         
        System.out.println(b);  // Вывод: 20
        
        int c = -10;            
        int d = c >> 3;         
        System.out.println(d);  // Вывод: -2
        
        int e = -10;            
        int f = e >>> 3;        
        System.out.println(f);  // Вывод: 536870910
    }
}


В этом примере мы создаем класс BitwiseShiftExample, где применяются операторы побитового сдвига для переменных типа int. Мы сдвигаем переменные a, c и e на определенное количество разрядов и выводим результаты на консоль.