Как мы уже знаем, один из стандартных типов переменных в языке MetaQuotes Language 4 - тип bool. Переменная типа bool может принимать только два значения: ИСТИНА (true) и ЛОЖЬ (false). Значение ЛОЖЬ представляется в виде нулевого значения, а ИСТИНА - ненулевого.
Значение операции отношения или логической операции будет иметь тип bool.
Значение операции отношения или логической операции будет иметь тип bool.
Операции отношения
Истина, если a равно b Ложь, если a не равно b | |
Истина, если a не равно b Ложь, если a равно b | |
Истина, если a меньше b Ложь, если a больше или равно b | |
Истина, если a меньше или равно b Ложь, если a больше b | |
Истина, если a больше b Ложь, если a меньше или равно b | |
Истина, если a больше или равно b Ложь, если a меньше b |
Постоянный адрес статьи: "Операции отношения"
Логические операции.
Напомню, что значение ЛОЖЬ (false) представляется в виде нулевого значения, а ИСТИНА (true) - ненулевого.
В этом выпуске я рассмотрю логические операции НЕ (!), ИЛИ (||) и И (&&).
Логическое отрицание НЕ (!)
bool b; b = false; // переменная b равна false (ЛОЖЬ) b = !b; // переменная b равна true (ИСТИНА) b = !b; // переменная b равна false (ЛОЖЬ)
Логическая операция ИЛИ (||)
Результат логической операции ИЛИ равен true, если хотя бы один из операндов равен true. Если оба операнда равны false, то и результат логического ИЛИ также будет равен false.
bool a = true; // a равно true bool b = false; // b равно false b = b || a; // b равно true
Логическая операция И (&&)
Результат операции логического И будет равен true только в случае, если оба операнда равны true. Во всех иных случаях результат операции будет равен false.
bool a = true; // a равно true bool b = false; // b равно false b = b && a; // b равно false
Постоянный адрес статьи: "Логические операции"
Побитовые операции.
Для начала необходимо рассказать о формате представления чисел в компьютере.
Мы в нашей жизни привыкли к десятичному представлению чисел: 56, 777, 10957 и т.д. Десятичное представление числа 10957 означает, что 10957 = 1*104 +0*103+9*102+5*101+7*100. Иными словами десятичное число - это a0*100+a1*101+a2*102+...+an*10n. Т.е. сумма произведений соответствующей цифры (ai) на соответствующую степень числа 10 (10i).
В компьютере внутренний формат представления чисел - двоичный. В двоичном формате все числа состоят из нулей и единиц, а в качестве множителя используется не число 10, возведенное в степень, а соответствующая степень числа 2. Например, двоичное число 10001101 равно десятичному (обычному) числу 1*27+0*26+0*25+0*24+1*23+1*22+0*21+1*20 = 128+0+0+0+8+4+0+1 = 141.
Каждая такая двоичная цифра (1 или 0) называется битом.
Теперь мы знаем достаточно, чтобы рассмотрить побитовые операции.
Побитовые операции
- Дополнение до единицы. В каждом разряде единица заменяется нулем, а нуль - единицей. Пример:
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
Постоянный адрес статьи: "Побитовые операции"
0 коммент.:
Отправить комментарий