- Published on
Swiftda Bitwise va Bit Shift operatorlari
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
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
----------
00001000 → 8
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
-----------
00011101 → 29
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
-----------
00010101 → 21
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 << 2 → 1100 (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