Skip to content

JavaScript Bitli Amallar (Bitwise Operations)

JavaScript bitli operatorlari sonlar bilan bit (ikkilik sanoq tizimi) darajasida ishlash imkonini beradi.

Bitli Operatorlar

OperatorNomiTavsif
&AND (VA)Ikkala bit ham 1 bo'lganda 1 qaytaradi
``OR (YOKI)
^XORFaqat bittasi 1 bo'lsa 1 qaytaradi
~NOT (INKOR)Barcha bitlarni teskarisiga o'zgartiradi
<<Chapga surish (Zero fill)Bitlarni chapga suradi va o'ngdan nol qo'shadi
>>O'ngga surish (Signed)Ishorani saqlagan holda o'ngga suradi
>>>O'ngga surish (Zero fill)Bitlarni o'ngga suradi va chapdan nol qo'shadi

Misollar

AmallatNatijaIkkilik ko'rinishiNatija (ikkilik)
5 & 110101 & 00010001
`51`5`0101
5 ^ 140101 ^ 00010100
~ 5-6~0101...1010
5 << 1100101 << 11010
5 >> 120101 >> 10010
5 >>> 120101 >>> 10010

JavaScript-da 32-bitli Operands

JavaScript-da sonlar 64-bitli floating point sifatida saqlansa-da, bitli amallar 32-bitli ishorali butun sonlar (signed integers) ustida bajariladi.

Amal bajarilishidan oldin son 32-bitga o'tkaziladi, amal bajarilgandan keyin esa yana 64-bitli formatga qaytariladi.

Eslatma

Ishorali butun sonlarda eng chapdagi (31-chi) bit manfiy ishorani bildiradi. Shuning uchun ~ 5 natijasi 10 emas, balki -6 bo'ladi.


Asosiy Bitli Amallar

Bitli AND (&)

Ikkala bit ham 1 bo'lsagina 1 qaytariladi.

js
let x = 5 & 1; // 1

Bitli OR (|)

Kamida bitta bit 1 bo'lsa 1 qaytariladi.

js
let x = 5 | 1; // 5

Bitli XOR (^)

Bitlar bir-biridan farq qilsa 1 qaytariladi.

js
let x = 5 ^ 1; // 4

Bitli NOT (~)

Barcha bitlar teskarisiga o'zgartiriladi (0 -> 1, 1 -> 0).

js
let x = ~5; // -6

Surish Operatorlari (Shift Operators)

Chapga surish (<<)

Bitlarni chapga suradi. O'ngdan bo'shatilgan o'rinlar nollar bilan to'ldiriladi.

js
let x = 5 << 1; // 10

O'ngga ishorali surish (>>)

Bitlarni o'ngga suradi va eng chapdagi bitning nusxasini (ishorani) chapdan qo'shadi.

js
let x = -5 >> 1; // -3

O'ngga noli surish (>>>)

Bitlarni o'ngga suradi va chapdan har doim nollarni qo'shadi (ishora yo'qoladi).

js
let x = 5 >>> 1; // 2

Bitli Tayinlash Operatorlari

OperatorMisolMa'nosi
&=x &= yx = x & y
`=``x
^=x ^= yx = x ^ y
<<=x <<= yx = x << y
>>=x >>= yx = x >> y
>>>=x >>>= yx = x >>> y

Sonlarni O'zgartirish Funksiyalari

O'nlikdan Ikkilikka:

js
function dec2bin(dec) {
  return (dec >>> 0).toString(2);
}

Ikkilikdan O'nlikka:

js
function bin2dec(bin) {
  return parseInt(bin, 2).toString(10);
}

Bilasizmi?

Dunyoda faqat 10 turdagi odamlar bor: ikkilik tizimni tushunadiganlar va tushunmaydiganlar. 😄