BİT DÜZEYİNDE İŞLEM GÖREN OPERATÖRLER
Swift’te,bit düzeyindeki (bitwise) operatörler C’den aynen alınmıştır. Bu tür operatörler yardımı ile bir veri yapısı içindeki belirli bitler’e erişmek ve farklı veriler arasında bit’ler mertebesinde karşılaştırmalar yapmak mümkün olmaktadır. Bu operatörler aşağıdaki tabloda listelendiği gibidir:
Operatör | Sembol | Kullanışı | İşlem Sonucu |
---|---|---|---|
Sağa Öteleme | >> | a>>b | a'nın bitleri sağa doğru b kadar ötelenir |
Sola Öteleme | << | a<<b | a'nın bitleri sağa doğru b kadar ötelenir |
Bit düzeyinde AND | & | a & b | a ve b'nin karşılıklı bit'leri arasında AND işlemi uygulanır. |
Bit düzeyinde | | | a|b |
a ve b'nin karşılıklı bit'leri arasında OR işlemi uygulanır |
---|---|---|---|
Bit düzeyinde exclusive OR(XOR) | ^ | a^b | a ve b'nin karşılıklı bitl'leri arasında XOR işlemi uygulanır. |
Bit düzeyinde tamamlayıcı (complement) | ~ | ~a | a'nın bitlerini tersine çevirir(1'ler 0,0'lar 1 olur.) |
ÖTELEME OPERATÖRLERİ
Öteleme operatörlerinde kullanılacak olan operandların int türde olması gerekir. int türde değilse otomatik olarak int türe dönüştürülürler.
ÖRNEKLER:
onluk sistem ikilik sistem (int)
6 00000000 00000110
6 << 2 işlemi uygulanırsa sonuç: 00000000 00011000
6 sayısı, bit’leri sola doğru 2’şer kaydırılarak 24 sayısına dönüşmüştür.
onluk sistem ikilik sistem (int)
314 00000000 00111010
314 >> 3 işlemi uygulanırsa sonuç: 00000000 00100111
314 sayısı 39 sayısına dönüşmüştür.
Aşağıdaki programda bu operatörlerle ilişkili örnek ifadeler kullanılmıştır:
print("\n25556 >> 6=\(25556>>6)")
print("\n-345>>5 =\(-345>>5)")
print("\n32 << 4=\(32<<4)")
print("\n87 >>2=\(87>>2)")
SONUÇ:
25556 >> 6=399
-345>>5 =-11
32 << 4=512
87 >>2=21
Sola doğru öteleme, ötelemenin uygulandığı sayıyı, 2’nin kuvveti ile çarpmakla eşdeğerdir.
Örneğin :
a << b ifadesi a * 2b ifadesine denktir.
Negatif olmayan sayılarda, sağa öteleme ise, 2’nin kuvvetine bölmeye eşdeğerdir.
a >> b ifadesi ile a / 2b ifadeleri birbirine denktir.
ÖRNEK KOD:
import Foundation
print("\n5<<4=\(5 << 4) \t 5 * 2 ^ 4=\( Double(5) * pow( 2, 4))" )
print("\n720>>3=\(720 >> 3)\t 720/2^3=\(Double(720) / pow(2 , 3))")
KODUN ÇIKTISI
5<<4=80 5 * 2 ^ 4=80.0
720>>3=90 720/2^3=90.0