Понимание побитовых операций и их применение в Java

Я думаю, понимаю, что они в основном делают - работают с битами (переворачивание, сдвиг, инвертирование и т. Д.).

Моя проблема в том, что я не знаю, когда мне когда-нибудь понадобится их использовать, и я не думаю, что полностью понимаю биты.

Я знаю, что в байте 8 бит, и я знаю, что биты0 или же1, Здесь я начинаю путаться ... Я считаю, что типы данных по-разному определяют комбинации битов. Так что, если я объявлюint32 бита отводятся для чисел, если я объявляю символ, 8 бит откладываются и биты для этого типа данных определяют букву.

Работая с этой идеей, я сделал следующую базовую операцию в Java, которая смущает меня:

int num = 00000010;
System.out.println(num);

Это печатает8 и если я определюnum сюда:

int num = 00000100;
System.out.println(num);

Это печатает64

Поэтому, чтобы попрактиковаться с побитовыми операциями (просто ради этого), я попробовал это:

int num = 00000010 << 1;
System.out.println(num);

И это печатает16 где, как я думал, он сдвинет биты на единицу влево и напечатает64.

Что здесь происходит, и когда мне когда-нибудь понадобится применить этот метод манипулирования битами?

Ответы на вопрос(1)

Ваш ответ на вопрос