Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретична частина.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
463.36 Кб
Скачать
  1. Навіщо потрібні бітові операції? Що таке операція інкременту? Що таке операція декременту?

Навіщо потрібні бітові операції?

Ці операції призначені для роботи (установки / зняття / перевірки) груп бітів в цілій змінній. Біти цілого числа - це не що інше, як окремі розряди того ж самого числа, записаного в двійковій системі числення. Наприклад, у двійковій системі число 12 буде виглядати як 1100, а 2 - як 10, так що вираз 12 | 2 поверне нам число 14 (1110 у двійковій запису). Якщо змінна не ціла, то вона спочатку округляється, а вже потім до неї застосовуються перераховані нижче оператори. Для представлення одного числа використовуються 32 біта:

  • 0000 0000 0000 0000 0000 0000 0000 0000 - это ноль;

  • 0000 0000 0000 0000 0000 0000 0000 0001 - это 1;

  • 0000 0000 0000 0000 0000 0000 0000 0010 - это 2;

  • ...

  • 0000 0000 0000 0000 0000 0000 0000 1111 - это 15;

Всього в наявності 6 побітових операторів:      $ a & $ b - І (отримуємо число в якому встановлені біти, які встановлено в $ a і в $ b)      $ a | $ b - Або (отримуємо число в якому встановлені біти, які встановлено в $ a або в $ b)      $ a ^ $ b - Виключаюче або (число в якому встановлені біти встановлені в $ a або в $ b, але не в обох одночасно)      ~ $ a - Заперечення (інверсія, 1 змінюється на 0, і навпаки)      $ a << $ b - Зсув вліво (всі біти в $a зміщуються вліво на кількість позицій в $b) (кожен зсув означає помножити лівий операнд на 2)      $ a >> $ b - Зсув вправо (всі біти в $a зміщуються вправо на кількість позицій в $b) (кожен зсув означає поділити на 2)

Використання бітів в «повсякденному» житті веб додатків – Маски.

по-перше, БО різко зкорочують довжину коду;

по-друге, їх можна використовувати де душі завгодно, вони доступні завжди, не треба писати спеціальних класів;

по-третє, як я вже сказав, це найшвидші операції, компілятору не доведеться конвертувати значення в будь-який інший вид, щоб порівняти з чимось;

по-четверте, (звернути особливу увагу!), це займе всього 4 байта пам’яті як для зберігання, так і для маніпуляції;

і по-п’яте, це суттєво підвищить якість ваших програм, які не обов’язково написані на PHP.

Що таке операція інкременту?

PHP, аналогічно C, підтримує префіксні і постфіксні оператори інкремента і декремента.

Приклад Назва Дія + + $а префіксний інкремент Збільшує $a на одиницю і повертає значення $a. $ф + + постфіксний інкремент Повертає значення $ a, а потім збільшує $ a на одиницю. Як і в мові Сі, ці оператори збільшують або зменшують значення змінної, а в виразі повертають значення змінної $a до зміни. Наприклад: $ A = 10; $ B = $ a + +; echo "a = $ a, b = $ b"; / / Виводить a = 11, b = 10

Як бачите, спочатку зміній $ b присвоїли значення змінної $ a, а вже потім остання була інкрементована. Втім, вираз, значення якого присвоюється змінній $ b, може бути і складніше - в будь-якому випадку, інкремент $ a відбудеться тільки після його обчислення.

У PHP, як і в C, є два типи інкремента: pre-increment і post-increment. І pre-increment, і post-increment збільшують значення змінної на 1, і значення змінної ідентичні. Різниця у значенні виразу інкремента. Pre-increment, який записується як '+ + $ variable', обчислюється в нове значення (PHP спочатку збільшує значення, перш ніж його прочитати, звідси назва 'pre-increment'). Post-increment, який записується '$ variable + +', обчислює оригінальне значення змінної $ variable, а потім виконує інкремент (PHP збільшує змінну після читання її значення, звідси назва 'post-increment').

Приклад: $ A = 10; $ B = - $ a; echo "a = $ a, b = $ b"; / / Виводить a = 9, b = 9

Що таке операція декременту?

Приклад Назва Дія -- $а префіксний декремент Зменшує $ a на одиницю і повертає значення $ a. $а -- постфіксний декремент Повертає значення $ a, а потім зменшує $ a на одиницю.

Як і в мові Сі, ці оператори зменшують значення змінної, а у вираженні повертають значення змінної $a до зміни. Наприклад:

Існують також оператори декремента, які вказуються до, а не після імені змінної. Відповідно, і повертають вони значення змінної вже після зміни.

Приклад: $ A = 10; $ B =-- $ a; echo "a = $ a, b = $ b"; / / Виводить a = 9, b = 9

Операції інкремента і декремента на практиці застосовуються дуже часто. Наприклад, вони зустрічаються практично в будь-якому циклі for.