Go Down

Topic: variabile bit (Read 634 times) previous topic - next topic

volcane

Salve!

che tipo di variabile e' consigliabile usare per memorizzare un bit? mi sembra di sprecare risorse dichiarando una variabile int o char per soli due valori cioe' 0 oppure 1 il programma che sto scrivendo usa dei flag per capire se si sono verificati degli eventi che possono essere appunto di due tipi 0 oppure 1

Testato

la variabile "boolean"

contiene solo due valori, ed occupa 1 byte di memoria

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

lesto

quindi se devi contenere più di 2 valori booleani, meglio un yte e lavorare sui bit
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Testato

Scusare, io no capire
YTE cosa essere, come usare
Thanks
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

lesto

uffa a sto giro non ho scuse  :smiley-roll-blue:

allora, un boolean, occupa un byte e può mantenere sono 1 valore.
un BYTE occupa sepre un byte (ma va?) però se usi gli operatori sui bit puoi contenere 8 flag
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Testato

come si fa con la eeprom quindi, pero' questi restano in RAM

x volcane: questo significa che allo spegnimento perdi i tyuoi bei flag, se non ti crea problemi va bene cosi'
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

volcane


uffa a sto giro non ho scuse  :smiley-roll-blue:

allora, un boolean, occupa un byte e può mantenere sono 1 valore.
un BYTE occupa sepre un byte (ma va?) però se usi gli operatori sui bit puoi contenere 8 flag


quindi non conviene mai usare il tipo boolean? se in termini di risorse richieste occupa 1 byte, tanto vale usare il tipo byte?

leo72

L'informazione più piccola memorizzabile in una memoria è il bit ma la più piccola "entità" maneggiabile dal micro è il byte.
Siccome un boolean altro non è che un tipo char sotto mentite spoglie, usare un booleand o un byte (un'altra "versione" del char ma di tipo unsigned), l'uso dei 2 è equivalenti dal punto di vista del consumo di memoria ma con un tipo byte puoi gestire fino a 256 valori mentre col boolean sei limitato a 0/1 - false/true.

Testato

Serve anche per migliorare la leggibbilita
Se trovi usato un boolean sai di per certo, anche magari senza capire intero sketch, che quella variabile serve da on off
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

leo72

#9
Dec 21, 2011, 11:27 am Last Edit: Dec 21, 2011, 12:42 pm by leo72 Reason: 1
Beh, se è per questo credo che vedere

Code: [Select]
statoMotore=0;

dia molte più informazioni che

Code: [Select]
statoMotore=false;

Si può anche definire una costante ON ed una OFF, se vuoi la max chiarezza.

Code: [Select]
const byte ON=1;
statoMotore=ON;


Poi comunque dipende dai gusti e dalle preferenze. Io, di retaggio BASICchiano, uso anche i,j,k in questa sequenza quando devo ciclare qualcosa  :smiley-sweat:

Testato

per la questione chiarezza intendevo la dichiarazione di una variabile

Code: [Select]
boolean pippo;

so gia' da subito che pippo puo' essere 0 o 1
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up