Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Dubbio su tipo di variabile
Forum - C/C++ - Dubbio su tipo di variabile

Avatar
chessmaster (Normal User)
Newbie


Messaggi: 10
Iscritto: 25/06/2011

Segnala al moderatore
Postato alle 18:49
Venerdì, 08/07/2011
Devo creare una variabile che può valere: 1, 2, 3, 4, 5, 6, 7 oppure 8.
Avevo pensato a un tipo enum ma ho bisogno di fare anche differenze tra variabili di questo tipo.
Ho pensato dunque all'unsigned int, tuttavia se avessi a=2 e b=5 potrei calcolare a-b? Che risultato otterrei? Se questo fosse diverso da -3 dovrei ripiegare sul classico tipo int o esistono dei tipi particolari per interi "piccoli" ?


Ciao!
PM
Avatar
LucaLuca (Normal User)
Newbie


Messaggi: 15
Iscritto: 25/06/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 19:28
Venerdì, 08/07/2011
short int è il tipo predefinito che fa a caso tuo...in realtà non è molto "short" [−32,768;32,768] però visto che hai numeri piccoli ti conviene utilizzarla. Anche se a parer mio, salvo la volontà di ottimizzare particolarmente l'uso della memoria potresti lanciarti in un classico e comodo integer

PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 19:33
Venerdì, 08/07/2011
Potresti tranquillamente usare anche un char ...

Ma se usi un int o uno short int non è che cambi molto ... anzi, un int potrebbe essere trattato anche più velocemente di uno short int o di un char ...

Attenzione ... un int ha quei limiti compilando a 32 bit ... altrimenti, a 64 bit, ne ha altri pur essendo sempre int ...



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM
Avatar
anthony015 (Member)
Pro


Messaggi: 116
Iscritto: 20/05/2011

Up
-1
Down
V
Segnala al moderatore
Postato alle 1:18
Sabato, 09/07/2011
potresti farti una classe contenente un array di 5 boolean per contenere il numero(scritto in binario), e un altra booleana che indichi il segno, poi ti fai i metodi per assegnare un valore, sottrarlo, ecc(vabbé, i metodi che ti servono), oppure overloadi gli operatori per le operazioni che ti servono, ed ecco fatto che hai risparmiato spazio...

Per i boolean viene solitamente allocata comunque memoria quanto un int. Una soluzione potrebbe essere realizzare una struct, ma in questo modo addio gestire i numeri in modo veloce e performante. - D@vide - 09/07/11 11:51
figliolo, cosa vai dicendo? - anthony015 - 09/07/11 12:40
Credi veramente che un boolean in C++ occupi veramente soltanto un bit? Non è certo un modo ne di risparmiare spazio come credi tu. Qualcuno chiami un esorcista :asd: Ah rettifico, prima volevo scrivere char, non int. - D@vide - 09/07/11 12:47
char, vabbene, ma int proprio no... - anthony015 - 09/07/11 12:56
Pardon, errore mio, volevo dire char, il ragionamento è comunque lo stesso :si ritira in un angolino: - D@vide - 09/07/11 12:57
PM