- Katılım
- 14 Ağu 2009
- Konular
- 421
- Mesajlar
- 1,971
- Reaksiyon Skoru
- 39
- Altın Konu
- 0
- TM Yaşı
- 16 Yıl 10 Ay 6 Gün
- Başarım Puanı
- 140
- MmoLira
- -2
- DevLira
- 0
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Bilgisayarda herhangi bir aritmetik veya mantık işleminin yapılabilmesi için verilerin belirli şekillerde depolanması gerekir. C dilinde birkaç temel veri tipi vardır bunlara bir göz atalım.
32 bitlik bir bilgisayarda:
1 - char: -128 ile +127 içinde bir sayı değerine sahip olabilir. Uzunluğu: 1 byte (8 bit)
2 - short: -32767 ile +32767 arasında değer alabilir. Uzunluğu: 2 byte(16 bit)
3 - int: -2,147,483,648 ile +2,147,483,648 arasında bir değer alabilir. Uzunluğu: 4 byte(32 bit)
tanımlama örnek:
C Kod
char b;
short i;
int l;
Signed / Unsigned (işaretli / işaretsiz)
Kısaca; bir veri tipi (örn: char) unsigned ile tanımlandıysa (-) değer alamaz ve alacağı maksimum (+) değer, alabildiği (-) değer kadar genişler. Yani;
C Kod
signed char b;
char c;
şeklinde tanımlanan ifadelerde b ve c -128 ile +127 arası değer alabilirken;
C Kod
unsigned char d
şeklinde tanımlanan ifadede d, 0-255 arası değer alabilir.
Peki bu neden böyle?
şimdi 1 ve 0lara inersek. Bilgisayarı geliştiren elemanlar hep sınırlı büyüklükle uğraştılar. Bu sınırlı büyüklükler içinde negatif sayıları belirtmek için de basit ve kullanışlı bir yol bulmaları gerekiyordu. İşte bunun sonucu işaret biti denilen bir şey ortaya çıktı. Şimdi diyelim ki elimizde 8 bit veri alanı var. bu 8 bitlik alanın soldan ilk biti işaret bitidir. Eğer bu bit 1 ise sayı -, 0 ise +dır.
Örnek:
01111110 = 126
01111111 = 127
10000000 = -128
10000001 = -127
Matematiksel olarak da zaten ilk bite müdahale etmek sayının 2'ye bölünmesine yol açacaktır. Eğer neden +127 ile -128 arasında? niye ikisi de 128 değil derseniz, +127ye kadar olan sayılara 0'ı da dahil ediyoruz. Yani arada bir de sıfır var. Daha açık konuşmak gerekirse 0-255 arası sayıları kabul eden 8 bitlik bir veri alanı aslında 256 değer almaktadır (Çünkü sıfır da var). Tam ortadan ikiye ayırırsak 0 ile 127 ve -128 ile -1 olarak iki ayrı alana bölünür.
Mantığı anladıysak devam edelim.
şimdi ekrana bir şey yazdırmak için
C Kod
printf("yazdırmak istediğimiz yazı");
diyebiliyoruz.
klavyeden giriş almak için de
C Kod
scanf("%d", &x);
gibi bir ifade kullanmalıyız. Buradaki "%d", gireceğimiz değerin bir sayı olması gerektiğini gösterir. &x ise x değişkeninin adresidir. Buna ileride değineceğiz.
Ha unutmadan
C Kod
//deneme
kodundaki // yorum başlangıcıdır. Bir satırda kullanıldıktan sonraki tüm karakterleri derleyici görmezden gelir.
Bir de
C Kod
/*deneme metni
deniyoruz tekrar */
şeklinde birkaç satırlık yorum yazabilirsiniz.
Örnek Program: Programa girilen iki sayıyı toplayıp sonucu yazan program.
C Kod
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
main()
{
int a, b, sonuc;
printf("Birinci sayi: ");
scanf("%d", &a); // Birinci sayıyı klavyeden alıyor.
printf("Ikinci sayi: ");
scanf("%d", &b); // İkinci sayıyı klavyeden alıyor.
sonuc = a + b;
printf("Sonuc: %d", sonuc); // Sonuç ekrana yazılıyor.
getchar();
return 0;
}
32 bitlik bir bilgisayarda:
1 - char: -128 ile +127 içinde bir sayı değerine sahip olabilir. Uzunluğu: 1 byte (8 bit)
2 - short: -32767 ile +32767 arasında değer alabilir. Uzunluğu: 2 byte(16 bit)
3 - int: -2,147,483,648 ile +2,147,483,648 arasında bir değer alabilir. Uzunluğu: 4 byte(32 bit)
tanımlama örnek:
C Kod
char b;
short i;
int l;
Signed / Unsigned (işaretli / işaretsiz)
Kısaca; bir veri tipi (örn: char) unsigned ile tanımlandıysa (-) değer alamaz ve alacağı maksimum (+) değer, alabildiği (-) değer kadar genişler. Yani;
C Kod
signed char b;
char c;
şeklinde tanımlanan ifadelerde b ve c -128 ile +127 arası değer alabilirken;
C Kod
unsigned char d
şeklinde tanımlanan ifadede d, 0-255 arası değer alabilir.
Peki bu neden böyle?
şimdi 1 ve 0lara inersek. Bilgisayarı geliştiren elemanlar hep sınırlı büyüklükle uğraştılar. Bu sınırlı büyüklükler içinde negatif sayıları belirtmek için de basit ve kullanışlı bir yol bulmaları gerekiyordu. İşte bunun sonucu işaret biti denilen bir şey ortaya çıktı. Şimdi diyelim ki elimizde 8 bit veri alanı var. bu 8 bitlik alanın soldan ilk biti işaret bitidir. Eğer bu bit 1 ise sayı -, 0 ise +dır.
Örnek:
01111110 = 126
01111111 = 127
10000000 = -128
10000001 = -127
Matematiksel olarak da zaten ilk bite müdahale etmek sayının 2'ye bölünmesine yol açacaktır. Eğer neden +127 ile -128 arasında? niye ikisi de 128 değil derseniz, +127ye kadar olan sayılara 0'ı da dahil ediyoruz. Yani arada bir de sıfır var. Daha açık konuşmak gerekirse 0-255 arası sayıları kabul eden 8 bitlik bir veri alanı aslında 256 değer almaktadır (Çünkü sıfır da var). Tam ortadan ikiye ayırırsak 0 ile 127 ve -128 ile -1 olarak iki ayrı alana bölünür.
Mantığı anladıysak devam edelim.
şimdi ekrana bir şey yazdırmak için
C Kod
printf("yazdırmak istediğimiz yazı");
diyebiliyoruz.
klavyeden giriş almak için de
C Kod
scanf("%d", &x);
gibi bir ifade kullanmalıyız. Buradaki "%d", gireceğimiz değerin bir sayı olması gerektiğini gösterir. &x ise x değişkeninin adresidir. Buna ileride değineceğiz.
Ha unutmadan
C Kod
//deneme
kodundaki // yorum başlangıcıdır. Bir satırda kullanıldıktan sonraki tüm karakterleri derleyici görmezden gelir.
Bir de
C Kod
/*deneme metni
deniyoruz tekrar */
şeklinde birkaç satırlık yorum yazabilirsiniz.
Örnek Program: Programa girilen iki sayıyı toplayıp sonucu yazan program.
C Kod
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
main()
{
int a, b, sonuc;
printf("Birinci sayi: ");
scanf("%d", &a); // Birinci sayıyı klavyeden alıyor.
printf("Ikinci sayi: ");
scanf("%d", &b); // İkinci sayıyı klavyeden alıyor.
sonuc = a + b;
printf("Sonuc: %d", sonuc); // Sonuç ekrana yazılıyor.
getchar();
return 0;
}


