Published on

Swiftda Bitwise va Bit Shift operatorlari

Authors

Bitwise operatorlar butun sonlar bilan bit darajasida ishlaydi. Ya’ni, ular sonlarning ichki ikkilik (binary) ko‘rinishidagi bitlarini tekshiradi, o‘zgartiradi yoki siljitadi.

Misollar:

a & b
a | b

Bu yerda: & — bitwise AND, | — bitwise OR operatori.

Swift tilidagi asosiy bitwise operatorlar:

& — AND • | — OR • ^ — XOR • ~ — NOT • << — chapga siljitish (left shift) • >> — o‘ngga siljitish (right shift)

Bitwise AND operatori

Bitwise AND (&) faqat ikkala bit 1 bo‘lsa, natijada 1 bo‘ladi. Aks holda 0.

Misol:

12 → 00001100 25 → 00011001

Bitwise AND bajarilishi:

00001100
& 00011001
----------
000010008

Swift misoli:

var a = 12
var b = 25

var result = a & b
print(result)   // 8

Bitwise OR operatori

Bitwise OR (|) bitlardan kamida bittasi 1 bo‘lsa, natija 1 bo‘ladi.

Misol:

00001100
| 00011001
-----------
0001110129

Swift misoli:

var a = 12
var b = 25

var result = a | b
print(result)   // 29

Bitwise XOR operatori

Bitwise XOR (^) bitlardan faqat bittasi 1, ikkinchisi 0 bo‘lsa 1 qaytaradi. Agar ikkala bit bir xil bo‘lsa (0–0 yoki 1–1), natija 0 bo‘ladi.

Misol:

00001100
^ 00011001
-----------
0001010121

Swift misoli:

var a = 12
var b = 25

var result = a ^ b
print(result)   // 21

Bitwise NOT operatori

Bitwise NOT (~) bitlarni teskarisiga o‘zgartiradi:

0 → 1 1 → 0

Swiftda bitwise NOT natijasi quyidagi formula bilan aniqlanadi:

~N = -(N + 1)

Masalan: N = 35 → -(35 + 1) = -36

Ikkilik ko‘rinishi:

~ 00100011
-----------
  11011100-36

Bu 2’s complement orqali manfiy songa aylantirilgan qiymat.

Swift misoli:

var b = 12

var result = ~b
print(result)   // -13

Izoh: ~12 = -(12 + 1) = -13

Chapga siljitish operatori (<<)

Left shift operator bitlarni chap tomonga ko‘chiradi. O‘ng tomondagi bo‘sh joylar 0 bilan to‘ldiriladi.

Misol:

var a = 3   // 0011 (binary)

var result = a `<<` 2
print(result)   // 12

0011 << 21100 (bu 12 ga teng)

O‘ngga siljitish operatori (>>)

Right shift operator bitlarni o‘ngga siljitadi.

• Musbat sonlarda bo‘sh joylarga 0 qo‘yiladi • Manfiy sonlarda esa sign-bit (1) saqlanadi

Misol:

var a = 4

var result = `a >> 2`
print(result)   // 1

a = -4
result = `a >> 2`
print(result)   // -1

Tushuntirish:

  • 4 >> 2 → 1
  • -4 >> 2 → -1