Pages: [1]   Go Down
Author Topic: variabile bit  (Read 604 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6019
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

la variabile "boolean"

contiene solo due valori, ed occupa 1 byte di memoria

Logged

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

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quindi se devi contenere più di 2 valori booleani, meglio un yte e lavorare sui bit
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6019
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusare, io no capire
YTE cosa essere, come usare
Thanks
Logged

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

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6019
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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'
Logged

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

0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23142
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6019
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23142
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh, se è per questo credo che vedere

Code:
statoMotore=0;

dia molte più informazioni che

Code:
statoMotore=false;

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

Code:
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
« Last Edit: December 21, 2011, 06:42:37 am by leo72 » Logged


0
Offline Offline
Faraday Member
**
Karma: 49
Posts: 6019
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

per la questione chiarezza intendevo la dichiarazione di una variabile

Code:
boolean pippo;

so gia' da subito che pippo puo' essere 0 o 1
Logged

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

Pages: [1]   Go Up
Jump to: