Turkcell | Geleceği Yazanlar

Mobil Programlama

iOS

DERS PROGRAMI
Swift ile iOS 101 Ders Programı

Bit Düzeyinde İşlem Gören Operatörler

Lisans: Creative Commos (by-nc-sa)02.03.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler:Eğitmen: Geleceği Yazanlar Ekibi

 

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