iOS 101Başlangıç seviyesi derslerde iOS uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Bit Düzeyinde Mantıksal Operatörler

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 11.05.2016 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : obj-c Mantıksal Operatörler obj-c operatörler

 

Bu operatörler esas itibariyle mantıksal operatörler gibi işlem görürler; tek farkları data üzerinde bit düzeyinde işlem yapmalarıdır. Aşağıdaki C programında, bit düzeyinde AND (&) ve bit düzeyinde OR (|) sembollerinin kullanılışıyla ilgili örneği görüyoruz:

 

#import <Foundation/Foundation.h>
#include <math.h>
 
int main(int argc, char* argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
 
    NSLog(@"\n13&25=%i   214|112=%i\n\n",13&25,214|112);
}

 

 

SONUÇ:

13&25=9           214|112=246

 

AÇIKLAMA:

13 ve 25 ikili sayı sisteminde dolayısı ile bit mertebesinde aşağıdaki gibi temsil edilirler.

13=00001101

25=00011001

Bu durumda, 00001101&00011001 işleminde karşılıklı rakamlar arasında & işlemi yapılır ve bu işlemde 0&1=0, 1&0=0,0&0=0 ve 1&1=1 kuralına göre,

00001101&00011001=00001001 

sonucu bulunur; bu da onluk sistemdeki 9 sayısına eşittir.

 

Aynı şekilde,

214=11010110

112=01110000

şeklinde temsil edilebilir. |  (OR) işleminde 1|1=1, 1|0=1,0|1=1 ve 0|0=0   şeklinde belirlendiğinden,

11010110 |  01110000  =11110110   

sonucu bulunur; bu da onluk sistemdeki 246 sayısına denktir.

 

Aşağıdaki tabloda bit düzeyinde işlem yapan AND operatörü (&) ile ilgili örnekleri görüyoruz:

 

#import <Foundation/Foundation.h>
#include <math.h>

int main(int argc, char* argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
 
    NSLog(@"\n8955=%X",8955);
    NSLog(@"\n4847=%X",4847);
    NSLog(@"\n8955&4847=%X   8955|4847=%X\n\n",8955&4847,8955|4847);
}

 

 

PROGRAMIN ÇIKTISI:

 

Programda elde edilen sonuçlar aşağıdaki tablolarda daha ayrıntılı olarak yer alıyor:

           İfade

          Onaltılık değer

             İkili temsili

8955

4847

22FB

12EF

0010001011111011

0001001011101111

8955&4847

2EB

0000001011101011

 

Aşağıdaki tabloda ise bit düzeyinde OR operatörü ( ⎜) ile ilgili örneği görüyoruz:

            İfade

         Onaltılık değer

            İkili temsili

8955

4847

22FB

12EF

0010001011111011

0001001011101111

8955⎜4847

32FF

0011001011111111

 

Aşağıdaki tabloda onluk, onaltılık, ikilik ve sekizlik sistemler arasındaki dönüşüm yer alıyor:

      Onluk

           Onaltılık

        İkilik

          Sekizlik

0

0

0000

0

1

1

0001

1

2

2

0010

2

3

3

0011

3

4

4

0100

4

5

5

0101

5

6

6

0110

6

7

7

0111

7

8

8

1000

10

9

9

1001

11

10

A

1010

12

11

B

1011

13

12

C

1100

14

13

D

1101

15

14

E

1110

16

15

F

1111

17

 

Aşağıdaki C programında exclusive OR (XOR) operatörü ^ ve Bit düzeyinde tamamlama (complement) operatörü () ile ilişkili örneklere yer verdik:

 

#import <Foundation/Foundation.h>
#include <math.h>
 
int main(int argc, char* argv[])
{
    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
 
    NSLog(@"\n8955=%X", 8955);
    NSLog(@"\n4847=%X", 4847);
    NSLog(@"\n8955&4847=%X   ~8955|4847=%X\n\n", 8955&4847, 8955|4847);
}

 

 

PROGRAMIN ÇIKTISI:

 

Aşağıdaki tablolarda bu programın çıktıları ikili sistemdeki karşılıklarıyla gösteriliyor.

Bu tabloda bit düzeyinde exclusive OR (XOR) operatörü (^) ile ilgili örneğe göz atalım:

İfade

Onaltılık değer

İkili temsili

8955
4847

22FB
12EF

0010001011111011
0001001011101111

8955 ^ 4847

3014

0011000000010100

 

 

Bit düzeyinde tamamlama (complement) operatörü (∼) verinin bitlerini tersine çeviriyor; 1’leri 0, 0’ları 1 yapıyor:

İfade

Onaltılık değer

İkili temsili

8955

22FB

0010001011111011

∼8955

FFFFDD04

11111111111111111101110100000100