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

JavaScript

JavaScript также поддерживает набор побитовых операторов, аналогичный другим языкам программирования, таким как Java.

Побитовые операторы в JavaScript — это те операторы, которые работают на битовом уровне, состоящем из единиц и нулей (т.е. Двоичного представления), а не десятичных или шестнадцатеричных чисел. Здесь термин «побитовый» означает оперирование двоичными числами.

Побитовые операторы JavaScript работают только с целыми числами длиной 32 бита.

В побитовых операциях внутреннее представление целых чисел представлено двоичной системой счисления. Двоичное число представлено двумя цифрами, 0 или 1.

Побитовые операторы используются в битовых операциях. Однако эти операторы редко используются в программировании на JavaScript, поскольку вы имеете дело с последовательностями битов более высокого уровня, такими как числа или строки.

Типы побитовых операторов в JavaScript

JavaScript предоставляет семь побитовых операторов для работы с отдельными битами. Они перечислены в таблице ниже:

ОператорИмяТип
&Побитовые Идвоичный файл
|Побитовые ИЛИдвоичный файл
^Побитовое XOR (Исключающее ИЛИ)двоичный файл
~Побитовые НЕТунарные

Давайте разберемся со всеми ними один за другим в деталях.

Побитовый оператор И (&)

Побитовый оператор AND выполняет операцию AND над каждым битом двух операндов (т.Е. числовых значений). Он сравнивает два бита.

Если соответствующие биты двух операндов (т.е. Оба бита равны 1) равны 1, результатом будет 1. В противном случае результирующий бит равен 0. Синтаксис следующий:

A & B; // here, A and B are operands.

Таблица истинности для этого оператора приведена в таблице ниже.

ABA и B
000
010
100
111

Рассмотрим следующий пример, где мы будем использовать И два числа (2 и 10).

var num = 2 & 10; // output is 2.

Давайте разберемся, как это работает. На рисунке ниже показано 32-разрядное двоичное представление чисел 2 и 10 и результирующее число после выполнения побитовой операции AND.

Пример побитовой работы JavaScript И оператора

Таблица истинности — это таблица, которая показывает взаимосвязь между входными данными и выводом. В операции AND при умножении двух или более входных битов мы получаем выходной бит.

Из таблицы истинности, если оба сравниваемых входных бита равны 1, мы получаем результат 1. В противном случае мы получаем результат 0. Из таблицы истинности, При умножении отдельных битов 2 и 10, мы получаем 2 & 10 = 2.

Побитовый оператор OR (|) в JavaScript

Побитовый оператор OR выполняет логическую операцию OR над каждым битом своих целых чисел. Он представлен символом | называется символом канала.

В операции OR каждый бит первого операнда (числа) сравнивается с соответствующим битом второго операнда. Если хотя бы один из сравниваемых битов равен 1, то возвращается 1. В противном случае возвращается 0. Синтаксис следующий:

A | B

Таблица истинности для побитового оператора OR приведена ниже:

ABA | B
000
011
101
111

Рассмотрим таблицу истинности побитового оператора OR. Если оба сравниваемых бита равны 0, результат равен 0. Если любой бит равен 1 в обоих битах, результат равен 1.

Рассмотрим следующий пример, где мы будем использовать ИЛИ два числа (2 и 10).

var num = 2 | 10; // output is 10.

Давайте разберемся, как это работает. На рисунке ниже показано 32-разрядное двоичное представление чисел 2 и 10 и результирующее число после выполнения побитовой операции OR.

Пример побитового использования JavaScript ИЛИ оператора

Добавляя входные биты 2 и 10, мы получаем на выходе 10, как показано на рисунке.

Побитовый оператор XOR (^)

Побитовый оператор XOR выполняет логическую операцию исключения OR (XOR) над каждым битом своих целых чисел. Он представлен символом ^, называемым cap. Общий синтаксис использования оператора XOR следующий:

A ^ B

Побитовый оператор XOR сравнивает каждый бит первого операнда (числа) с соответствующим битом второго операнда.

Если во входных битах содержится нечетное число 1, мы получаем выходной бит как 1. Другими словами, если два бита имеют одинаковое значение, вывод равен 0, в противном случае вывод равен 1. Посмотрите на приведенную ниже таблицу истинности.

ABA ^ B
000
011
101
110

Рассмотрим следующий пример, где мы будем преобразовывать в XOR два числа (2 и 10).

var num = 2 ^ 10; // output is 8.

Давайте разберемся, как это работает. На рисунке ниже показано 32-разрядное двоичное представление чисел 2 и 10 и результирующее число после выполнения побитовой операции XOR.

Пример побитового оператора XOR в JavaScript

Из таблицы истинности, если мы получаем нечетное число 1, то результат равен 1, в противном случае результат равен 0. Следовательно, 2 ^ 10 = 8.

Побитовый оператор NOT (~)

Побитовый оператор NOT по сути является инвертором. Он возвращает значение, обратное своему операнду или значению. Он преобразует все единицы в 0, а все 0 — в 1. Поэтому его также называют унарным оператором или оператором переворота битов.

Таблица истинности побитового оператора NOT приведена ниже:

A~A
01
10

Рассмотрим следующий пример, где мы будем использовать ИЛИ два числа (2 и 10).

var num = ~10; // output is -11.

Давайте разберемся, как это работает. На рисунке ниже показано 32-разрядное двоичное представление чисел 10 и результирующее число -11 после выполнения побитовой операции NOT.

Пример побитового НЕ оператора JavaScript

Давайте возьмем простую программу на JavaScript, где мы будем выполнять все операции на основе побитовых операторов в JavaScript.

Программный код 1:

<html>
<head>
     <title>JavaScript Bitwise Operators Example Program</title>
</head>
<body>
  <script>
        let a = 2, b = 10;
       document.write("(2 & 10): " +(a & b), "<br>");
       document.write("(2 | 10): " +(a | b), "<br>");

       document.write("(2 ^ 10): " +(a ^ b), "<br>");
       document.write("`10: " +~b);
   </script>
</body>
</html>
Вывод:
 (2 & 10): 2
 (2 | 10): 10
 (2 ^ 10): 8
 `10: -11

В этом руководстве вы изучили типы побитовых операторов в JavaScript на примерах программ. Я надеюсь, что вы поняли все основные моменты, связанные с побитовыми операторами AND, OR, XOR и NOT. В следующем уроке мы обсудим строковый оператор в JavaScript на различных примерах программ. Спасибо за чтение!!!

Оцените статью
Adblock
detector