У овом упутству ћете научити о битним операторима ЈаваСцрипт-а и његовим типовима уз помоћ примера.
ЈаваСцрипт битни оператори
Оператори у битовима третирају његове операнде као скуп 32-битних бинарних цифара (нуле и јединице) и извршавају радње. Међутим, резултат је приказан као децимална вредност.
Оператори | Име | Пример |
---|---|---|
& | У битовима И. | x & y |
| | У битовима ИЛИ | x | y |
^ | Битно КСОР | x y |
~ | Битно НЕ | ~x |
<< | Лева смена | x << y |
>> | Десна смена која се шири знаком | x>> y |
>>> | Нулта-филл десна смена | x>>> y |
Напомена : Минимални и максимални цели бројеви који се могу представити путем 32-битног потписаног броја су од -2147483648 до 2147483647.
ЈаваСцрипт у битовима И
Битно И &
враћа 1 ако су одговарајући битови оба операнда 1, иначе враћа 0 .
Операнд 1 | Операнд 2 | И Операција |
---|---|---|
0 | 0 | 0 & 0 је 0 |
0 | 1 | 0 & 1 је 0 |
1 | 0 | 1 & 0 је 0 |
1 | 1 | 1 & 1 је 1 |
Погледајмо битни И рад две целобројне 12 и 25 .
У бинарном облику, 12 = 01100 25 = 11001 // По битима И рад 12 и 25 00001100 & 00011001 --------- 00001000 = 8 (у децималу)
Напомена : Претварање 12 у 32-битне бинарне датотеке даје нам, 00000000000000000000000000001100
а 25 даје 00000000000000000000000000011001
. Међутим, ради једноставности уклонили смо претходне нуле.
Пример 1: Битни И Оператор
// bitwise AND operator example let a = 12; let b = 25; result = a & b; console.log(result); // 8
У горњем програму,
- Бинарна вредност 12 је
00000000000000000000000000001100
- Бинарна вредност 25 је
00000000000000000000000000011001
. - Када се изведе битна операција АНД , бинарни резултат ће бити тај
00000000000000000000000000001000
који се претвара у децималну вредност 8.
ЈаваСцрипт у битовима ИЛИ
Битно ИЛИ |
враћа 1 ако је један од одговарајућих битова једног операнда 1, други враћа 0 .
Операнд 1 | Операнд 2 | ИЛИ Операција |
---|---|---|
0 | 0 | 0 | 0 је 0 |
0 | 1 | 0 | 1 је 1 |
1 | 0 | 1 | 0 је 1 |
1 | 1 | 1 | 1 је 1 |
Погледајмо битовну ИЛИ операцију две целобројне 12 и 25 .
У бинарном облику, 12 = 01100 25 = 11001 // По битима ИЛИ рад 12 и 25 00001100 | 00011001 -------- 00011101 = 29 (у децималу)
Пример 2: Битни ИЛИ оператор
// bitwise OR operator example let a = 12; let b = 25; result = a | b; console.log(result); // 29
Када се изведе битна ИЛИ операција, бинарни резултат ће бити тај 00000000000000000000000000011101
који се претвара у децималну вредност 29.
ЈаваСцрипт у битовима КСОР
У битовима КСОР ^
враћа 1 ако су одговарајући битови различити и враћа 0 ако су одговарајући битови исти.
Операнд 1 | Операнд 2 | КСОР Операција |
---|---|---|
0 | 0 | 0 0 је 0 |
0 | 1 | 0 1 је 1 |
1 | 0 | 1 0 је 1 |
1 | 1 | 1 1 је 0 |
У бинарном облику, 12 = 01100 25 = 11001 // КСИВ рад у битовима КСОР 12 и 25 00001100 00011001 -------- 00010101 = 21 (у децималу)
Пример 3: Битни КСОР оператор
// bitwise XOR operator example let a = 12; let b = 25; result = a b; console.log(result); // 21
Када битовима ЛОЛ врши операција, бинарни резултат ће бити 00000000000000000000000000010101
који претвара у децималне вредности 21.
ЈаваСцрипт у битовима НЕ
~
Бит- ов НЕ претвара бит ( 0 постаје 1 , 1 постаје 0 ).
У бинарном облику, 12 = 00000000000000000000000000001100 // Битвисе Нот Оператион оф 12 ~ 00000000000000000000000000001100 --------------------------------- 11111111111111111111111111110011 = -13 (у децималу)
Током претварања 11111111111111111111111111110011
у децимални, вредност би била 4294967283. Али када се користи битни оператор, вредност се израчунава у потписаном формату комплемента 2, осим за померање у десно.
Комплемент 2 израчунава се инвертирањем битова (комплемент 1) и додавањем 1 . На пример,
13 in binary: 00000000000000000000000000001101 1's complement of 13: 11111111111111111111111111110010 2's complement of 13: 11111111111111111111111111110010 +1 --------------------------------- 11111111111111111111111111110011
Notice the 2's complement of 13 (i.e. -13) is 11111111111111111111111111110011
. This value is equivalent to the bitwise NOT of 12.
Example 4: Bitwise NOT Operator
// bitwise NOT operator example let b = 12; result = ~b; console.log(result); // -13
When bitwise NOT operation is performed, the binary result will be 11111111111111111111111111110011
which converts into the decimal value -13.
Note: Bitwise NOT of a number x gives -(x + 1). Notice above ~2
gives -3.
JavaScript Left shift
У левом оператеру смене <<
, леви операнд наводи број, а десни операнд број који се помера лево. Нулти битови се додају удесно, а вишак са леве стране се одбацује.

На пример,
let a = 8; let b = 1; result = a << b; // 1 ( 00000000000000000000000000010000 ) console.log(result);
ЈаваСцрипт помицање десног помака који се шири знаком
У оператеру десне смене >>
, први операнд наводи број, а други операнд број који се помера удесно. Вишак битова с десне стране се одбацује. Копије крајњег левог бита премештене су са леве стране, па отуда и назив који се шири.

На пример,
let a = 8; let b = 1; // 11111111111111111111111111111101 let c = -3; result = a>> b; result1 = c>> b; // 4 (00000000000000000000000000000100) console.log(result); // -1 (11111111111111111111111111111111) console.log(result1);
ЈаваСцрипт Зеро-филл десни помак
Померање >>>
удесно при нули-пуњењу помера операнд удесно попуњавањем нула битова улево. Вишак битова с десне стране се одбацује.

На пример,
let a = 8; let b = 1; let c = -3; result = a>>> b; result1 = c>>> b; // 4 (00000000000000000000000000000100) console.log(result); // 1073741823 (00111111111111111111111111111111) console.log(result);