Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

provera opsega celobrojne promenljive

[es] :: C/C++ programiranje :: provera opsega celobrojne promenljive

[ Pregleda: 2565 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

alpha
Nemanja Janic
Beograd

Član broj: 5223
Poruke: 35
*.201.eunet.yu



Profil

icon provera opsega celobrojne promenljive21.05.2004. u 02:06 - pre 242 meseci
Potrebno je da za odredjenu promenjlivu osiguram da ima celobrojni opseg od 0 do 255. Posto se radi o broju, ja sam jednostavno naveo da je ta promenljiva unsigned char i svaki put kada mi je potrebna njena vrednost ja uradim typecasting u unsigned short. Na slican nacin sam osigurao da korisnik ne moze da unese vrednost van ovog opsega, jer svaki put kad se unosi broj, ja ga "uglavim" izmedju 0 i 255 tako sto ga typecastujem nazad u unsigned char. Da li je ovo dobro, ili da batalim taj nacim i da jednostavno ogranicim mogucnost unosa vrednosti promenljive?
...znam koliko ne znam... ili ne?
 
Odgovor na temu

Mirko Rajkovača
Subotica

Član broj: 18458
Poruke: 119
*.5.eunet.yu



Profil

icon Re: provera opsega celobrojne promenljive21.05.2004. u 16:44 - pre 242 meseci
Bolje i jednostavnije ti je staviti uslov tipa:
if ((a>=0) && (a<=255))
{
//something
}
else
{
//error
}

Jesi li se zapitao šta će se desiti ako korisnik unese veci broj od 255?
Razlika izmedju softvera i hardvera je:
Softver je nesto sto mozes psovati, a hardver je... pa hardver je nesto sto mozes sutati
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.adsl.zonnet.nl

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: provera opsega celobrojne promenljive21.05.2004. u 17:29 - pre 242 meseci
Obično nije dobra ideja da tako svodiš na opseg. To je zato što ti u različitim situacijama može zatrebati različita obrada prekoračenja: na primer premotavanje, zasićenje ili nešto treće. Ako opseg ograničiš konverzijom onda si na milost i nemilost kompajlera.

f
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.client.comcast.net



+1001 Profil

icon Re: provera opsega celobrojne promenljive22.05.2004. u 00:21 - pre 242 meseci
Cast-ovanje bi bilo ocajno lose resenje za to sto pokusavas (tj. clipping).

Evo kontra primera:

int main(void)
{
int x = 0x7FFFFF01;
unsigned char ch = (unsigned char)x;

printf("ch = 0x%X", ch);
return 0;
}

pa ces videti da cast-ovanje zapravo zadrzava samo least significant byte (LSByte) i
to metodom odsecanja, sto nikako ne daje to sto hoces.
 
Odgovor na temu

alpha
Nemanja Janic
Beograd

Član broj: 5223
Poruke: 35
*.243.EUnet.yu



Profil

icon Re: provera opsega celobrojne promenljive22.05.2004. u 02:01 - pre 242 meseci
...eh... hvala... pa ono sto sam ja imao na umu je da kad korisnik unese broj veci od 255, kompajler ga jednostavno "premota" u opseg od 0 do 255, ali sad vidim da to bas i ne igra :) onda cu ipak da idem na if (x>255 || x<0)... a taman sam mislio da sam provalio neko bas elegantno resenje :))
...znam koliko ne znam... ili ne?
 
Odgovor na temu

[es] :: C/C++ programiranje :: provera opsega celobrojne promenljive

[ Pregleda: 2565 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.