-
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ş
Öteleme operatörlerinde kullanılacak olan operandların int türünde olması gerekir. Eğer değilse otomatik olarak int türüne dönüştürülür.
ÖRNEKLER:
onluk sistem ikilik sistem (int)
6 00000000 00000110
6 << 2 işlemi uygulanırsa sonuç: 00000000 00011000 (6 sayısı, bitleri 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 ilgili örnek ifadeler kullanılmıştır:
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSLog(@"\n32 << 4=%i \t 87 >> 2 =%i \n25556 >> 6= %i\t -345 >> 5 =%i \n", 32 << 4, 87 >>2, 25556 >> 6, -345 >> 5) ;
}
SONUÇ:
Sola doğru öteleme, ötelemenin uygulandığı sayıyı 2’nin kuvvetiyle çarpmaya 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.
Aşağıdaki program bu denklik konusunda bir örnektir:
#import <Foundation/Foundation.h>
#include <math.h>
int main(int argc, char* argv[]
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSLog(@"\n5<<4=% i \t 5*2^4=% i \n", 5<< 4, (int)(5 * pow((double) 2, (double)4))) ;
NSLog(@"\n720>>3=%i \t720/2^3= %i \n", 720>>3, (int)(720 / pow((double) 2, (double)3))) ;
}
PROGRAMIN ÇIKTISI:
5 * 24 ifadesindeki üs alma işlemi için C’de özel bir sembol yoktur. Üs alma, C kütüphanesindeki pow (a, b) fonksiyonu yardımı ile sağlanabilinir.
pow(a ,b) fonksiyonu ab işlemini yapmaktadır. Burada a ve b double türünde olup, sonuç da double türdedir. O nedenle ifadelerde sonucu tamsayı yapmak için (int) cast operatörü kullanılmıştır. cast operatörünün önceliği ifadedeki diğer operatörlerden üstün olduğu için 5 * pow((double)2, (double)4) ifadesi ayrıca paranteze alınarak,
(int)(5 * pow((double)2, (double)4))
şeklinde yazılmıştır.