Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга по написанию робота под MT4.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
484 Кб
Скачать
☆

Побитовые операции

  • Дополнение до единицы. В каждом разряде единица заменяется нулем, а нуль - единицей. Пример:

int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 b = ~b; // переменная b стала равна 01110010, т.е. 114

  • Сдвиг вправо. Двоичное представление первого операнда сдвигается вправо на количество разрядов, равное значению второго операнда. Освобождающиеся "левые" разряды будут заполняться нулями. Пример:

int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 b = b >> 2; // переменная b стала равна 00100011, т.е. 67

  • Сдвиг влево. Двоичное представление первого операнда сдвигается влево на количество разрядов, равное значению второго операнда. Появившиеся "правые" разряды будут заполняться нулями. Пример:

int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 b = b << 2; // переменная b стала равна 1000110100, т.е. 564

  • Побитовая операция И. Результат будет содержать единицу в тех разрядах, где соответствующие разряды первого и второго операнда содержат единицу. В других случаях соответствующий бит результата будет равен 0. Пример:

int a = 25; // начальное значение переменной a равно 25, // что в двоичном представлении равно 00011001 int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 a = a & b; // переменная a стала равна 00001001, т.е. 9

  • Побитовая операция ИЛИ. Результат будет содержать ноль в тех разрядах, где соответствующие разряды первого и второго операнда содержат ноль. В других случаях соответствующий бит результата будет равен 1. Пример:

int a = 25; // начальное значение переменной a равно 25, // что в двоичном представлении равно 00011001 int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 a = a | b; // переменная a стала равна 10011101, т.е. 157

  • Побитовая операция исключающее ИЛИ. Значение результирующего выражения будет содержать 1 в тех разрядах, в которых x и y имеют разные двоичные значения, и 0 - во всех остальных разрядах. Пример:

int a = 25; // начальное значение переменной a равно 25, // что в двоичном представлении равно 00011001 int b = 141; // начальное значение переменной b равно 141, // что в двоичном представлении равно 10001101 a = a ^ b; // переменная a стала равна 10010100, т.е. 148

Объединение арифметических и побитовых операций с операцией присваивания

В прошлых выпусках мы рассмотрели арифметические и побитовые операции. Ранее я рассказал об операторе присваивания.

В синтаксисе MetaQuotes Language 4 - языка написания советников - есть возможность объединить арифметические и побитовые операции с операцией присваивания.