Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
zrinka7 Gost
|
|
[Vrh] |
|
ta2a Forumaš(ica)
Pridružen/a: 01. 09. 2004. (12:59:54) Postovi: (B4)16
Spol:
Lokacija: zg
|
|
[Vrh] |
|
fireball Forumaš(ica)
Pridružen/a: 07. 10. 2005. (18:49:17) Postovi: (4AB)16
Spol:
Lokacija: s rukom u vatri i nogom u grobu
|
|
[Vrh] |
|
Gost
|
Postano: 22:25 uto, 27. 6. 2006 Naslov: |
|
|
hmmm.. ne znam bas. pitanje izgleda ni nije tolko banalno.. char je varijabla i kao takva ne ucitava nista...
probaj ukucati sljedeci program
#include <stdio.h>
int main() {
char ca=1,cb=2;
int ia = 'k';
printf("zbroj: %i, slovo: %c\n", ca+cb, ia);
getchar();
return 0;
}
kolko ja znam mozes ga koristiti za bilokaj ti treba. u gornjem primjeru pomocu int-a ispisujes slova a char-a brojeve.. razlika ti je u velicini koju zauzima u memoriji. char ima jedan bajt - 8 bitova pa je to 2^8 (256) brojeva... kod int-a npr bi bilo 4 bajta. zavisno o arhitekturi.. zato se int koristi za brojeve a char za slova. evo ti (malkice nepregledne) tablice koja prica o tome kolko kaj zauzima..
Type Bytes Bits Range
short int 2 16 -32,768 -> +32,767 (32kb)
unsigned short int 2 16 0 -> +65,535 (64Kb)
unsigned int 4 32 0 -> +4,294,967,295 ( 4Gb)
int 4 32 -2,147,483,648 -> +2,147,483,647 ( 2Gb)
long int 4 32 -2,147,483,648 -> +2,147,483,647 ( 2Gb)
signed char 1 8 -128 -> +127
unsigned char 1 8 0 -> +255
float 4 32
double 8 64
long double 12 96
hmmm.. ne znam bas. pitanje izgleda ni nije tolko banalno.. char je varijabla i kao takva ne ucitava nista...
probaj ukucati sljedeci program
#include <stdio.h>
int main() {
char ca=1,cb=2;
int ia = 'k';
printf("zbroj: %i, slovo: %c\n", ca+cb, ia);
getchar();
return 0;
}
kolko ja znam mozes ga koristiti za bilokaj ti treba. u gornjem primjeru pomocu int-a ispisujes slova a char-a brojeve.. razlika ti je u velicini koju zauzima u memoriji. char ima jedan bajt - 8 bitova pa je to 2^8 (256) brojeva... kod int-a npr bi bilo 4 bajta. zavisno o arhitekturi.. zato se int koristi za brojeve a char za slova. evo ti (malkice nepregledne) tablice koja prica o tome kolko kaj zauzima..
Type Bytes Bits Range
short int 2 16 -32,768 -> +32,767 (32kb)
unsigned short int 2 16 0 -> +65,535 (64Kb)
unsigned int 4 32 0 -> +4,294,967,295 ( 4Gb)
int 4 32 -2,147,483,648 -> +2,147,483,647 ( 2Gb)
long int 4 32 -2,147,483,648 -> +2,147,483,647 ( 2Gb)
signed char 1 8 -128 -> +127
unsigned char 1 8 0 -> +255
float 4 32
double 8 64
long double 12 96
|
|
[Vrh] |
|
lhranjec Forumaš(ica)
Pridružen/a: 06. 12. 2002. (11:04:45) Postovi: (42)16
|
|
[Vrh] |
|
zrinka7 Gost
|
|
[Vrh] |
|
HijenA Forumaš(ica)
Pridružen/a: 23. 01. 2004. (16:46:04) Postovi: (3D2)16
Spol:
Lokacija: Prazan skup ;-)
|
|
[Vrh] |
|
lhranjec Forumaš(ica)
Pridružen/a: 06. 12. 2002. (11:04:45) Postovi: (42)16
|
Postano: 10:55 čet, 29. 6. 2006 Naslov: |
|
|
[quote="HijenA"][quote="Anonymous"] razlika ti je u velicini koju zauzima u memoriji. char ima jedan bajt - 8 bitova pa je to 2^8 (256) brojeva... [/quote]
to nisu brojevi. 256 je broj kombinacija koje se mogu spremiti u 1 bajt memorije (odnosno 8 bitova). u tih 256 kombinacija se nalaze svi znakovi sa tipkovnice i jos masa specijalnih znakova ([url=http://game-editor.com/tutorials/images/ascii.jpg]ovdje[/url] mozes vidjeti kompletnu ASCII tablicu zajedno sa svim pripadnim kodovima).[/quote]
jako dobro. al ak si me iso ispravljat trebao si rec i da char nije varijabla nego kljucna rijec koja deklarira varijablu tog i tog tipa... a tak sam rekao radi jednostavnosti.
ipak, ovo o cemu pricamo [b]jesu[/b] brojevi svidjalo ti se to ili ne. [b]char[/b] je [b]numericki cjelobrojni tip podataka[/b] (koji moze pohranit tih 256 kombinacija, kao sto si primjetio). kolko ja znam, sve u racunalu je u numerickom oblicku i nema direktnog nacina pohranjivanja znakova (barem na mom, ne znam kak je kod tebe). ASCII tablica o kojoj pricas (ocito) nije nista drugo nego tablica brojeva od 0 do 255 (znaci unsigned char) gdje je svakom [b]broju[/b] pridruzen znak (pa i znakovi brojeva). dok spremis slovo 'a' u varijablu tipa char spremil si broj 97 a ne znak 'a'. usput, dok pises na kompu ako drzis (lijevi) Alt i ukucas 97 na numerickom dijelu tipkovnice dobit ces slovo 'a'.
bilo kako bilo, na pitanje:
"Da li se char koristi samo za slova ili i za nesto drugo?"
je odgovor "i za nesto drugo".
nema na cemu.
HijenA (napisa): | Anonymous (napisa): | razlika ti je u velicini koju zauzima u memoriji. char ima jedan bajt - 8 bitova pa je to 2^8 (256) brojeva... |
to nisu brojevi. 256 je broj kombinacija koje se mogu spremiti u 1 bajt memorije (odnosno 8 bitova). u tih 256 kombinacija se nalaze svi znakovi sa tipkovnice i jos masa specijalnih znakova (ovdje mozes vidjeti kompletnu ASCII tablicu zajedno sa svim pripadnim kodovima). |
jako dobro. al ak si me iso ispravljat trebao si rec i da char nije varijabla nego kljucna rijec koja deklarira varijablu tog i tog tipa... a tak sam rekao radi jednostavnosti.
ipak, ovo o cemu pricamo jesu brojevi svidjalo ti se to ili ne. char je numericki cjelobrojni tip podataka (koji moze pohranit tih 256 kombinacija, kao sto si primjetio). kolko ja znam, sve u racunalu je u numerickom oblicku i nema direktnog nacina pohranjivanja znakova (barem na mom, ne znam kak je kod tebe). ASCII tablica o kojoj pricas (ocito) nije nista drugo nego tablica brojeva od 0 do 255 (znaci unsigned char) gdje je svakom broju pridruzen znak (pa i znakovi brojeva). dok spremis slovo 'a' u varijablu tipa char spremil si broj 97 a ne znak 'a'. usput, dok pises na kompu ako drzis (lijevi) Alt i ukucas 97 na numerickom dijelu tipkovnice dobit ces slovo 'a'.
bilo kako bilo, na pitanje:
"Da li se char koristi samo za slova ili i za nesto drugo?"
je odgovor "i za nesto drugo".
nema na cemu.
_________________ The time is gone, the song is over, thought I'd something more to say. -- Pink Floyd
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 15:43 čet, 29. 6. 2006 Naslov: |
|
|
lhranjec je u pravu: [tt]char[/tt] je "mali integer", tj. cijeli broj koji stane u 1 byte (od -128 do 127). 8) Slicno, [tt]unsigned char[/tt] (znak bez predznaka :lol:) je nenegativni cijeli broj koji stane u 1 byte (od 0 do 255). 8)
Da li ce to biti tretirano kao znak ili kao broj, ovisi iskljucivo o tome sto i kako pojedine funkcije rade s varijablom. :D
lhranjec je u pravu: char je "mali integer", tj. cijeli broj koji stane u 1 byte (od -128 do 127). Slicno, unsigned char (znak bez predznaka ) je nenegativni cijeli broj koji stane u 1 byte (od 0 do 255).
Da li ce to biti tretirano kao znak ili kao broj, ovisi iskljucivo o tome sto i kako pojedine funkcije rade s varijablom.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
|