JS bit operatorlari


Bits in a Computer
ULASHISH

JavaScript bitli operatorlari

Operator Name Tavsif
& AND Ikkala bit ham 1 bo‘lsa, har bir bitni 1 ga o‘rnatadi
| OR Ikki bitdan biri 1 bo‘lsa, har bir bitni 1 ga o‘rnatadi
^ XOR Ikki bitdan faqat bittasi 1 bo‘lsa, har bir bitni 1 ga o‘rnatadi
~ NOT Barcha bitlarni teskarisiga o‘zgartiradi
<< Zero fill left shift Nollarni o‘ngdan ichkariga bosish orqali chapga siljiydi va eng chapdagi bitlarning tushishiga yo‘l qo‘ying
>> Signed right shift Eng chap bitning nusxalarini chapdan ichkariga surish orqali o‘ngga siljiydi va eng o‘ngdagi bitlarning tushib ketishiga yo‘l qo‘ying
>>> Zero fill right shift Chapdan nollarni bosish orqali o‘ngga siljiydi va eng o‘ngdagi bitlar tushishiga yo‘l qo‘ying

Misollar

Operation Natija Ekvivalenti Natija
5 & 1 1 0101 & 0001  0001
5 | 1 5 0101 | 0001  0101
~ 5 10  ~0101  1010
5 << 1 10 0101 << 1  1010
5 ^ 1 4 0101 ^ 0001  0100
5 >> 1 2 0101 >> 1  0010
5 >>> 1 2 0101 >>> 1  0010

JavaScript 32 bitli bitli operandlardan foydalanadi

JavaScript raqamlarni 64 bitli suzuvchi nuqta raqamlari sifatida saqlaydi, lekin barcha bit bo‘yicha operatsiyalar 32 bitli ikkilik raqamlarda amalga oshiriladi.

Bit bo‘yicha operatsiyani bajarishdan oldin JavaScript raqamlarni 32 bitli imzolangan butun sonlarga aylantiradi.

Bit bo‘yicha operatsiya bajarilgandan so‘ng, natija 64 bitli JavaScript raqamlariga aylantiriladi.

Yuqoridagi misollar 4 bitli imzosiz ikkilik raqamlardan foydalanadi. Shu sababli ~ 5 10 ni qaytaradi.

JavaScript 32 bitli imzolangan butun sonlardan foydalanganligi sababli, u 10 ni qaytarmaydi. U -6 ni qaytaradi.

00000000000000000000000000000101 (5)

11111111111111111111111111111010 (~5 = -6)

Belgilangan butun son eng chap bitni minus belgisi sifatida ishlatadi.



JavaScript Bitwise VA

Bit juftligida AND bajarilsa, ikkala bit ham 1 bo‘lsa, u 1 ni qaytaradi.

One bit example:
OperatsiyaNatija
0 va 00
0 va 10
1 va 00
1 va 11
4 bits example:
OperatsiyaNatija
1111 va 00000000
1111 va 00010001
1111 va 00100010
1111 va 01000100

JavaScript bitli OR

Bit bo‘yicha OR juft bitda bajarilganda, bitlardan biri 1 bo‘lsa, u 1 ni qaytaradi:

One bit example:
OperatsiyaNatija
0 | 00
0 | 11 
1 | 01
1 | 11
4 bits example:
OperatsiyaNatija
1111 | 00001111
1111 | 00011111
1111 | 00101111
1111 | 01001111

JavaScript bitli XOR

Bitli XOR bir juft bitda bajarilganda, agar bitlar boshqacha bo‘lsa, u 1 ni qaytaradi:

One bit example:
OperatsiyaNatija
0 ^ 00
0 ^ 11 
1 ^ 01
1 ^ 10 
4 bits example:
OperatsiyaNatija
1111 ^ 00001111
1111 ^ 00011110
1111 ^ 00101101
1111 ^ 01001011

JavaScript bitli VA (&)

Bit bo‘yicha AND ikkala bit 1 bo‘lsagina 1ni qaytaradi:

O‘nlikIkkilik
500000000000000000000000000000101
100000000000000000000000000000001
5 va 100000000000000000000000000000001 (1)

Misol

let x = 5 & 1;
O‘zingiz sinab ko‘ring »

JavaScript Bitwise YOKI (|)

Bit yo‘nalishi bo‘yicha OR, agar bitlardan biri 1 bo‘lsa, 1 ni qaytaradi:

O‘nlikIkkilik
500000000000000000000000000000101
100000000000000000000000000000001
5 | 100000000000000000000000000000101 (5)

Misol

let x = 5 | 1;
O‘zingiz sinab ko‘ring »

JavaScript bitli XOR (^)

Bit bo‘yicha XOR, agar bitlar boshqacha bo‘lsa, 1 ni qaytaradi:

O‘nlikIkkilik
500000000000000000000000000000101
100000000000000000000000000000001
5 ^ 100000000000000000000000000000100 (4)

Misol

let x = 5 ^ 1;
O‘zingiz sinab ko‘ring »

JavaScript Bitwise EMAS (~)

O‘nlikIkkilik
500000000000000000000000000000101
~511111111111111111111111111111010 (-6)

Misol

let x = ~5;
O‘zingiz sinab ko‘ring »

JavaScript (nol to‘ldirish) Bit yo‘nalishi bo‘yicha chapga siljish (<<)

Bu nol to‘ldirish chap siljish. Bir yoki bir nechta nol bitlar o‘ngdan itariladi va eng chap bitlar tushadi:

O‘nlikIkkilik
500000000000000000000000000000101
5 << 100000000000000000000000000001010 (10)

Misol

let x = 5 << 1;
O‘zingiz sinab ko‘ring »

JavaScript (belgini saqlash) Bit bo‘yicha o‘ngga siljitish (>>)

Bu to‘g‘ri siljishni saqlaydigan belgi. Eng chap bitning nusxalari chapdan ichkariga suriladi va eng o‘ngdagi bitlar tushadi:

O‘nlikIkkilik
-511111111111111111111111111111011
-5 >> 111111111111111111111111111111101 (-3)

Misol

let x = -5 >> 1;
O‘zingiz sinab ko‘ring »

JavaScript (nol to‘ldirish) o‘ngga siljitish (>>>>)

Bu nol to‘ldirish o‘ngga siljish. Bir yoki bir nechta nol bitlar chapdan itariladi va eng o‘ngdagi bitlar tushadi:

O‘nlikIkkilik
500000000000000000000000000000101
5 >>> 100000000000000000000000000000010 (2)

Misol

let x = 5 >>> 1;
O‘zingiz sinab ko‘ring »

Shiftni tayinlash operatorlari

Operator Misol Ekvivalenti
<<= x <<= y x = x << y
>>= x >>= y x = x >> y
>>>= x >>>= y x = x >>> y

<<= Operator

Chapga siljitishni tayinlash operatori o‘zgaruvchini chapga siljitadi.

Chapga siljishni tayinlash misoli

let x = -100;
x <<= 5;
O‘zingiz sinab ko‘ring »

>>= Operator

O‘ngga o‘tishni tayinlash operatori o‘zgaruvchini o‘ngga siljitadi (imzolangan).

O‘ngga siljitish topshirig‘iga misol

let x = -100;
x >>= 5;
O‘zingiz sinab ko‘ring »

>>>= Operator

Unsigned Right Shift Assignment operatori o‘zgaruvchini (imzosiz) o‘ngga siljitadi.

Imzosiz o‘ngga siljishni tayinlash misoli

let x = -100;
x >>>= 5;
O‘zingiz sinab ko‘ring »

Bitwise tayinlash operatorlari

Operator Misol Ekvivalenti
&= x &= y x = x & y
^= x ^= y x = x ^ y
|= x |= y x = x | y

&= Operator

Bitli AND tayinlash operatori ikkita operandda bitli AND operatsiyasini bajaradi va natijani o‘zgaruvchiga tayinlaydi.

Bitwise VA tayinlash misoli

let x = 10;
x &= 5;
O‘zingiz sinab ko‘ring »

|= Operator

Bitli OR tayinlash operatori ikkita operandda bitli OR operatsiyasini bajaradi va natijani o‘zgaruvchiga tayinlaydi.

Bit yo‘nalishi bo‘yicha YOKI tayinlash misoli

let x = 10;
x |= 5;
O‘zingiz sinab ko‘ring »

^= Operator

Bitwise XOR tayinlash operatori ikkita operandda bitli XOR operatsiyasini bajaradi va natijani o‘zgaruvchiga tayinlaydi.

Bitli XOR tayinlash misoli

let x = 10;
x ^= 5;
O‘zingiz sinab ko‘ring »

Ikkilik Numberlar

Bitta bitli ikkilik raqamlarni tushunish oson:

Ikkilik vakillikO‘nlik qiymat
000000000000000000000000000000011
000000000000000000000000000000102
000000000000000000000000000001004
000000000000000000000000000010008
0000000000000000000000000001000016
0000000000000000000000000010000032
0000000000000000000000000100000064

Yana bir nechta bitni o‘rnatish ikkilik naqshni ochib beradi:

Ikkilik vakillikO‘nlik qiymat
000000000000000000000000000001015 (4 + 1)
0000000000000000000000000000110113 (8 + 4 + 1)
0000000000000000000000000010110145 (32 + 8 + 4 + 1)

JavaScript ikkilik raqamlari ikkita to‘ldiruvchi formatda saqlanadi.

Bu shuni anglatadiki, manfiy son sonning bit yo‘nalishi bo‘yicha EMAS, ortiqcha 1:

Ikkilik vakillikO‘nlik qiymat
000000000000000000000000000001015
11111111111111111111111111111011-5
000000000000000000000000000001106
11111111111111111111111111111010-6
0000000000000000000000000010100040
11111111111111111111111111011000-40

Hazil:

Dunyoda bor-yo‘g‘i 10 turdagi odamlar bor: binarni tushunadiganlar va tushunmaydiganlar.


O‘nlik sanoqni ikkilik sanoqqa aylantirish

Misol

function dec2bin(dec){
  return (dec >>> 0).toString(2);
}
O‘zingiz sinab ko‘ring »

Ikkilik sanoqli tizimga aylantirish

Misol

function bin2dec(bin){
  return parseInt(bin, 2).toString(10);
}
O‘zingiz sinab ko‘ring »


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!