30. Соб-2 Как установить бит в единицу в битовой маске? Как установить бит в ноль в битовой маске? Как получить значение определенного бита в битовой маске? Что такое ленивое вычисление выражения? Чем отличается использование && и & для типа boolean?

 6. Як встановити біт в одиницю в бітовій масці?

Застосувати бітовий оператор | (АБО) до маски, в яку потрібно внести зміни, та маски із встановленою одиницею в потрібному біті.

Наприклад: int mask = mask | 0010 0000.

    0000 0110 (вихідна маска)

 | 0010 0000 (маска з нулів з одиницею в потрібному біті)

     ------------

    0010 0110

 

 

7. Як встановити 0 в бітовій масці?

Застосувати бітовий оператор & (І) до маски, в яку потрібно встановити 0 і маски, в якій в потрібному біті встановлено 0 і решту бітів займають одиниці.

Наприклад: int mask = mask & 1011 1111.

    0111 1100 (вихідна маска)

& 1011 1111 (маска з одиниць з нулем в потрібному місці)

     ------------

    0011 1100

 

8. Як отримати значення певного біта в бітовій масці?

Застосувати бітовий оператор & (І) до вихідної маски і маски, в якій всі нулі і одиниця в місці потрібного біта, результат порівняти з нулем.

Наприклад: Boolean b = (mask & 1011 1111) != 0;

    0111 1100 (вихідна маска)

& 0010 0000 (маска з нулів з одиницею в потрібному місці)

     ------------

    0010 0000  (b = true, так як 00100000 != 0)

 

9. Що таке ліниве обчислення виразу?

Лінивим називається таке обчислення виразу із застосуванням логічних операторів, в якому обчислюються не всі вирази умови, якщо n-на кількість результатів обчислень вже має вирішальне значення і умова виконається не залежно від решти обчислень умови.

Наприклад:

int  i = 0;

if(i==0 || j == 1 || k == 3); - виконається обчислення тільки і==0, так як цього достатньо для виконання умови.

 

10. Чим відрізняється && i & для типу boolean?

& - побітове І, використовується, коли потрібно виконати всі обчислення умови.

&& - логічне І, використовується, якщо можна застосувати ліниве обчислення.

 

 

Коментарі

Популярні дописи з цього блогу

28. Соб 1. Какие приоритеты нитей бывают? Можно ли остановить нить, снизив ее приоритет до 0? Зачем нужен класс ThreadGroup? В какой группе нитей состоит main-thread? Что такое паттерн ThreadPool?

27 Гугл 1 goto. Зарезервовані (ключові) слова. wait не в блоці synchronized. happens-before. BlockingQueue. Методи BlockingQueue