Tam Sürümünü Görmek İçin : unsigned char ne demek...
quasimodo
12/10/2006, 15:35
usingned int in int ten farkı işaretsiz sayıları içine almasıdır ve tanım aralığını arttırır (neredeyse 2 katı). Ama char karakter tanımlamada kullanılan bir veri tipi, peki unsigned char ın anlamı ne karakterler zaten işaretsiz değilmi?
quasimodo
char tipi -128 den +127 kadar değerler tutar
unsigned char ise 0 dan 255 e kadar
yani char tamsayı türünde değerleri saklar.
C de karakter ekrana yazardırmak istediğinde(yada okumak) aslında onun ascii kodunu(tamsayı) kullanır mesela A için 65 gibi,
örnek:
char a=65;
printf("%c",a+1); // B yazar
printf("%d",a+1); // 65 yazar
kolay gelsin...
Myxomatose
12/10/2006, 18:53
İşaretli/işaretsiz olarak bahsi geçen harfin kendisi değil, ASCII numarasıdır. char tipi bu değeri tutar.
quasimodo
12/10/2006, 20:19
zaten benim merak ettiğimde o bütün karakterlerin ASCI kodu işaretsiz bir tamsayı değilmi? yani ASCII kodu (-) eksi olan bi karakter varmı?
acehreli
12/10/2006, 21:43
Hayir, kodu 0'dan kucuk olan bir karakter yoktur.
Aslinda birbirinden farkli uc karakter tUrU vardir:
unsigned char: [0,255]
signed char: [-128,127]
char: gerceklemeye bagli isaretli veya isaretsiz bir tUr
Sonuncu tUr, alabildigi degerler acisindan diger ikisinden birisi gibidir ama onlardan tamamen bagimsiz ayri bir tUrdUr.
Ornegin C++'ta onlari alan farkli islevler tanimlanabilir:
#include <iostream>
using std::cout;
void dene(signed char c)
{
cout << "isaretli char\n";
}
void dene(unsigned char c)
{
cout << "isaretsiz char\n";
}
void dene(char c)
{
cout << "sizin ortaminiza gore isaretli veya isaretsiz char\n";
}
int main()
{
unsigned char uc = 0;
dene(uc);
signed char sc = 0;
dene(sc);
char c = 0;
dene(c);
}
Ali
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.