
- •Практическая работа №16
- •Теоретическая часть
- •Операторы
- •Арифметические операторы
- •Стандартные Арифметические Операторы
- •Модуль (%)
- •Декремент (--)
- •Унарное вычитание (-)
- •Побитовые Операторы
- •Побитовые Логические операторы
- •Побитовые Операторы сдвига
- •Логические операторы
- •Вычисление...
- •Операторы Строки
- •Практическая часть
Побитовые Операторы
Побитовые операторы воздействуют на операнды как набор битов (0 и 1). Например, десятичное число 9 имеет двоичное представление 1001. Побитовые операторы выполняют действия на таких двоичных представлениях, но они возвращают стандартное JavaScript численное значение.
Побитовые Логические операторы
Побитовые логические операторы работают следующим образом:
Операнды преобразованы в 32-битные целые числа, и выражения строк битов (0 и 1).
Каждый бит в первом операнде соединен с соответствующим битом во втором операнде: первый бит к первому биту, второй бит ко второму биту, и так далее.
Оператор применяется к каждой паре битов, и результат создан побитовым.
Побитовые операторы:
Побитовый И & возвращает 1, если оба операнда 1.
Побитовый ИЛИ | возвращает 1, если любой операнд 1.
Исключающее побитовое ИЛИ возвращает 1, если есть 1 но не оба операнда 1.
Например, бинарное представление 9 - 1001, и бинарное представление 15 - 1111. Так, когда побитовые операторы применяются к этим значениям, то результаты выглядят следующим образом:
15 & 9 возвращает 9 (1111 & 1001 = 1001)
15 | 9 возвращает 15 (1111 | 1001 = 1111)
15 ^ 9 возвращает 6 (1111 ^ 1001 = 0110)
Побитовые Операторы сдвига
Побитовые операторы сдвига:
Сдвит влево (<<)
Сдвиг вправо (>>)
Сдвиг вправо с заполнением нулями (>>>)
Операторы сдвига присваивает два операнда: первый – количество, на которое будет сдвинуто, и второй определяет число битовых положений, которыми первый операнд должен быть сдвинут. Направление действия сдвига управляется использующим оператором.
Операторы сдвига преобразуют операнды к 32-битное целое число, и возвращают результат того же самого типа что и левый оператор.
Сдвит влево (<<)
Сдвиг влево перемещает все биты влево на количество позиций, указанных в правой части выражения, заполняя освободившиеся позиции нулями.
Например, 9<<2 возвращает 36, потому что 1001 сдвигается на 2 бита влево и становится равным 100100, что равно в десятеричной системе 36.
Сдвиг вправо (>>)
Сдвиг вправо заполняет освободившиеся слева позиции значением самого левого бита исходного значения.
Например, 9 >> 2 возвращает 2, потому что 1001 сдвигается на два бита вправо и становится 10, что равно в десятеричной системе 2. Аналогично, -9 >> 2 возвращает -3, потому что знак сохраняется.
Сдвиг вправо с заполнением нулями (>>>)
Сдвиг вправо с заполнением нулями работает аналогично сдвигу влево, только в противоположном направлении.
Например, 19>>>2 возвращает 4, потому что 10011 сдвигается на два бита вправо и становятся 100, что равно в десятеричной системе 4. Для postive чисел, ноль - заполняет правый сдвиг, и распространяющийся знак сдвигается вправо выдает тот же самый результат.
Логические операторы
Логические операторы принимают логические (Булевы) значения как операнды. Они возвращают логическое значение. Логические значения true(истина) и false(ложь).
И (&&)
Использование: expr1 && Expr2
Логический "и" возвращает оператор true, если оба логических выражения и expr1 и expr2 true. Иначе, возвращается false.
Или (||)
Использование: expr1 || expr2
Логический "или" возвращает оператор true, если хотя бы одно из логических выражений или expr1 или expr2 true. Если и expr1 и expr2 false, то это возвращается false.
Нет (!)
Использование:! Expr
Логический оператор "нет" - унарный оператор, который отрицает выражение операнда expr. То есть если expr true, то возвращает false, и если expr false, то возвращает true.