-
iOS Eğitimlerine Başlarken...
-
Objective-C Dilinde Kütüphaneler
-
Objective-C'de Sınıf Arayüzü (Class Interface) Nasıl Tanımlanır?
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Sabitlerden Oluşan İfadeler
-
int Türü İfadeler
-
float Türündeki İfadeler
-
Gösterge İfadeleri
-
Gösterge İfadeleri ve Değerleri
-
Operatörlerin Öncelikleri ve Birleşme Sıraları
-
İkili Aritmetiksel Operatörler
-
Aritmetiksel Atama Operatörleri
-
İlişkisel Operatörler
-
Mantıksal Operatörler
-
Bit Düzeyinde İşlem Gören Operatörler
-
Öteleme Operatörleri
-
Bit Düzeyinde Mantıksal Operatörler
-
Bit Düzeyinde İşlem İçin Bir Örnek: Sınav Değerlendirme Programı
-
Bit Düzeyinde Atama Operatörleri
-
Cast Operatörü
-
sizeof Operatörü ve Bir Örnek Program
-
Tekli Operatörler
-
Koşul Operatörü
-
Bellek Operatörleri
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Kontrol Yapıları
-
Döngü (Loop) Oluşturma
-
Miras Alma (Inheritance), Çok Biçimlilik
-
Ön İşlemci Komutları ve Makrolar
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Basit Makro Tanımları
-
Objective-C Ön İşlemcisi
-
Makrolarda Argümanlar
-
Önceden Tanımlanmış Değerlere Referans Verme
-
Gerçek Parametrelerde Bir Dizi İfadenin Kullanılması
-
Makro Tanımlamada # ve ## Operatörleri
-
Makro Tanımın İptal Edilmesi: undef Komutu
-
Dosya İçeriklerini Programa Katma: include Komutu
-
Şarta Bağlı Derleme İşlemi: #if Komutu
-
#ifdef Komutu
-
#ifndef Komutu
-
#error ve #pragma Direktifleri
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Diziler ve Sözlük Nesneleri
-
Diziler ve Sözlük Nesneleri Giriş
-
Bir Dizi Nesnesi Oluşturmak
-
Dizideki Eleman Sayısını Bulmak
-
Bir Dizi Nesnesinin Elemanlarına Erişme
-
Dizi Elemanlarına Hızlı Numaralama (Fast Enumeration) Yöntemi ile Erişmek
-
Dizi Nesnesine Eleman Eklemek
-
Dizi Nesnesinde Araya Eleman Ekleme
-
Dizi Nesnesinin Bazı Elemanlarını Silme
-
Dizi Nesnelerini Sıralama
-
Diziler ve Sözlük Nesneleri Giriş
-
Fonksiyonlar
-
Fonksiyonlar Giriş
-
Objective C Dilinde Bir Fonksiyonun Yapısı
-
Fonksiyonların Tanımlanması
-
Fonksiyonlarla İlişkili Terimler
-
return Deyimi
-
Fonksiyon Çağrıları ile İlgili Örnek C Programları
-
Fonksiyon Çağırma Teknikleri
-
Fonksiyonları Değer ile Çağırma
-
Fonksiyonları Referans ile Çağırma
-
İki Boyutlu Dizinin Argüman Olarak Gönderilmesi
-
C Dilinde Özyineli (Rekürsif) Fonksiyonlar
-
Fonksiyonlar Giriş
-
Dinamik Bağlama, id Veri Tipi
-
Bellek Sınıfları
-
Dosya İşlemleri
-
Nesne Yönelimli Programlama
-
Algoritmaya Giriş
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 |
22FB |
0010001011111011 |
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 |