Go Down

Topic: variabile bit (Read 789 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy