Справочник MQL4 Основы языка Операции и выражения Побитовые операции
Побитовые операцииДополнение до единицыДополнение до единицы значения переменной. Значение выражения содержит 1 во всех разрядах, в которых значение переменной содержит 0, и 0 во всех разрядах, в которых значения переменной содержит 1.
Пример:
Сдвиг вправоДвоичное представление x сдвигается вправо на y разрядов. Если сдвигаемое значение имеет беззнаковый тип, то осуществляется логический сдвиг вправо, то есть, освобождающиеся слева разряды будут заполняться нулями. Если же сдвигаемое значение имеет знаковый тип, то осуществляется арифметический сдвиг вправо, то есть освобождающиеся слева разряды будут заполняться значением знакового бита (если число положительное, то значение знакового бита равно 0, если число отрицательное, то значение знакового бита равно 1)
Пример:
Сдвиг влевоДвоичное представление x сдвигается влево на y разрядов; освобождающиеся справа разряды заполняются нулями.
Пример:
Не рекомендуется производить сдвиг на большее или равное число битов, чем разрядность сдвигаемой переменной, так как результат такой операции не определен. При выполнении операции сдвига над 32-х битными типами для вычисления сдвига учитываются только младшие 5 бит, а для операций сдвига над 64-х битными типами значения сдвига определяется только младшими 6 битами. Покажем это на примере:
Побитовая операция ИПобитовая операция И двоичных представлений x и y. Значение выражения содержит 1 (ИСТИНА) во всех разрядах, в которых и x, и y содержат не ноль; и 0 (ЛОЖЬ) во всех остальных разрядах.
Пример:
Побитовая операция ИЛИПобитовая операция ИЛИ двоичных представлений x и y. Значение выражения содержит 1 во всех разрядах, в которых x или y не содержит 0, и 0 - во всех остальных разрядах.
Пример:
Побитовая операция исключающее ИЛИПобитовая операция исключающее ИЛИ (eXclusive OR) двоичных представлений x и y. Значение выражения содержит 1 в тех разрядах, в которых x и y имеют разные двоичные значения, и 0 - во всех остальных разрядах.
Пример:
Побитовые операции выполняются только с целыми числами. Смотри также |