Складене побітове “і” (&=)

Документація

Опис


Оператор складене побітове “і” (&=) часто використовується зі змінною та константою, щоб змусити деякі біти у змінній набути статусу LOW (0). Вони часто згадуються у посібниках з програмування як біти “очищення” або “скидання”.

Синтаксис

x &= y;   // рівне x = x & y;


Параметри

x: змінна типу char, int або long

y: цілочисельна константа або char, int чи long

Приклад:

Спочатку розглянемо побітовий оператор “і” (&)

0  0  1  1    operand1
0  1  0  1    operand2
----------
0  0  0  1    (operand1 & operand2) - результат


Біти, які в результаті операції побітового “і” взаємодіють з 0, очищаються до 0, тому якщо myByte є змінною byte, то

myByte & B00000000 = 0;


Біти, які в результаті операції побітового “і” взаємодіють з 1, незмінні, тому,

myByte & B11111111 = myByte;


Примітка: оскільки ми маємо справу з бітами в побітових операціях, зручно використовувати двійковий формат для констант. Числа мають ті ж значення в інших вираженнях, проте їх легше розуміти. Крім того, B00000000 показане для ясності, але нуль у будь-якому форматі чисел дорівнює нулю (щось філософське, чи не так?).

Отже, щоб очистити (збити до 0) біти 0 & 1 змінної, залишивши решту змінної непорушною, використайте складений побітовий оператор “і” (&) з константою B11111100.

1  0  1  0  1  0  1  0    змінна
1  1  1  1  1  1  0  0    маска
----------------------
1  0  1  0  1  0  0  0

 змінна непорушна
                     біти очищені


Нижче таке ж представлення із заміненими бітами змінної на символ x

x  x  x  x  x  x  x  x    змінна
1  1  1  1  1  1  0  0    маска
----------------------
x  x  x  x  x  x  0  0

 змінна непорушна
                     біти очищені


Тому якщо:

myByte =  B10101010;

myByte &= B11111100 == B10101000;


Повернутись до головної

Коментарі 0

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.