Как работают битовые операции на long в java?

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

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

Как работают битовые операции на long в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от evalyn.barrows , 10 месяцев назад

@wilburn 

Битовые операции на типе данных long в Java выполняются для каждого бита в двоичном представлении числа. Всего в типе данных long 64 бита.


Ниже приведены основные битовые операции, доступные для использования с типом данных long:

  1. Побитовое И (AND): оператор "&". Выполняет побитовую логическую операцию И для каждой пары соответствующих битов в двух операндах.


Например: long a = 5; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000101 long b = 3; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000011 long result = a & b; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000001 System.out.println(result); // вывод: 1

  1. Побитовое ИЛИ (OR): оператор "|". Выполняет побитовую логическую операцию ИЛИ для каждой пары соответствующих битов в двух операндах.


Например: long a = 5; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000101 long b = 3; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000011 long result = a | b; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000111 System.out.println(result); // вывод: 7

  1. Побитовое исключающее ИЛИ (XOR): оператор "^". Выполняет побитовую логическую операцию исключающее ИЛИ для каждой пары соответствующих битов в двух операндах.


Например: long a = 5; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000101 long b = 3; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000011 long result = a ^ b; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000110 System.out.println(result); // вывод: 6

  1. Побитовый сдвиг влево (left shift): оператор "<<". Сдвигает все биты числа влево на указанное количество позиций.


Например: long a = 5; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000101 long result = a << 2; // двоичное представление результата: 0000000000000000000000000000000000000000000000000000000000010100 System.out.println(result); // вывод: 20

  1. Побитовый сдвиг вправо (right shift): оператор ">>". Сдвигает все биты числа вправо на указанное количество позиций, заполняя освобождающиеся биты левосторонними (старшими) битами исходного числа.


Например: long a = 5; // двоичное представление: 0000000000000000000000000000000000000000000000000000000000000101 long result = a >> 2; // двоичное представление результата: 0000000000000000000000000000000000000000000000000000000000000001 System.out.println(result); // вывод: 1

  1. Побитовый сдвиг вправо с заполнением нулями (zero fill right shift): оператор ">>>". Сдвигает все биты числа вправо на указанное количество позиций, заполняя освобождающиеся биты нулями.


Например: long a = -5; // двоичное представление: 1111111111111111111111111111111111111111111111111111111111111011 (-5 в 2-ом дополнительном коде) long result = a >>> 2; // двоичное представление результата: 0011111111111111111111111111111111111111111111111111111111111110 System.out.println(result); // вывод: 1073741822


Это лишь базовые примеры битовых операций с типом данных long в Java. Возможности битовых операций могут быть разнообразными и зависят от конкретной задачи или контекста.

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

от eryn.rodriguez , 2 месяца назад

@wilburn 

Какое-то другое пояснение нужно?