ЈаваСцрипт битни оператори (са примерима)

У овом упутству ћете научити о битним операторима ЈаваСцрипт-а и његовим типовима уз помоћ примера.

ЈаваСцрипт битни оператори

Оператори у битовима третирају његове операнде као скуп 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);

Занимљиви Чланци...