Pages: [1]   Go Down
Author Topic: variabile bit  (Read 495 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: 38
Posts: 5604
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] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10102
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
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

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 38
Posts: 5604
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10102
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
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

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 38
Posts: 5604
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] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

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: 313
Posts: 21607
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: 38
Posts: 5604
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] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21607
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: 38
Posts: 5604
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] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Pages: [1]   Go Up
Jump to: