Arduino - Tipi di dati

I tipi di dati in C si riferiscono a un sistema esteso utilizzato per dichiarare variabili o funzioni di diversi tipi. Il tipo di variabile determina quanto spazio occupa nella memoria e come viene interpretata la sequenza di bit memorizzata.

La tabella seguente fornisce tutti i tipi di dati che utilizzerai durante la programmazione di Arduino.

vuoto Booleano char Carattere non firmato byte int Int. Senza segno parola
lungo Non firmato a lungo corto galleggiante Doppio Vettore Matrice di caratteri stringa Oggetto stringa

vuoto

La parola chiave void viene utilizzata solo nelle dichiarazioni di funzione. Indica che la funzione non dovrebbe restituire alcuna informazione alla funzione da cui è stata chiamata.

Esempio

Void Loop ( ) {
   // rest of the code
}

Booleano

Un booleano contiene uno dei due valori, vero o falso. Ogni variabile booleana occupa un byte di memoria.

Esempio

boolean val = false ; // declaration of variable with type boolean and initialize it with false
boolean state = true ; // declaration of variable with type boolean and initialize it with true

Char

Un tipo di dati che occupa un byte di memoria che memorizza un valore di carattere. I caratteri letterali sono scritti tra virgolette singole in questo modo: "A" e per più caratteri, le stringhe utilizzano virgolette doppie: "ABC".

Tuttavia, i caratteri vengono memorizzati come numeri. Puoi vedere la codifica specifica nel grafico ASCII . Ciò significa che è possibile eseguire operazioni aritmetiche sui caratteri, in cui viene utilizzato il valore ASCII del carattere. Ad esempio, "A" + 1 ha il valore 66, poiché il valore ASCII della lettera maiuscola A è 65.

Esempio

Char chr_a = ‘a’ ;//declaration of variable with type char and initialize it with character a
Char chr_c = 97 ;//declaration of variable with type char and initialize it with character 97

carattere non firmato

Unsigned charè un tipo di dati senza segno che occupa un byte di memoria. Il tipo di dati char senza segno codifica i numeri da 0 a 255.

Esempio

Unsigned Char chr_y = 121 ; // declaration of variable with type Unsigned char and initialize it with character y

byte

Un byte memorizza un numero senza segno a 8 bit, da 0 a 255.

Esempio

byte m = 25 ;//declaration of variable with type byte and initialize it with 25

int

I numeri interi sono il tipo di dati principale per l'archiviazione dei numeri. int memorizza un valore a 16 bit (2 byte). Ciò produce un intervallo compreso tra -32.768 e 32.767 (valore minimo di -2 ^ 15 e valore massimo di (2 ^ 15) - 1).

Il intle dimensioni variano da tavola a tavola. Su Arduino Due, ad esempio, un fileintmemorizza un valore a 32 bit (4 byte). Questo produce un intervallo da -2.147.483.648 a 2.147.483.647 (valore minimo di -2 ^ 31 e valore massimo di (2 ^ 31) - 1).

Esempio

int counter = 32 ;// declaration of variable with type int and initialize it with 32

Int. Senza segno

Gli int senza segno (interi senza segno) sono uguali a int nel modo in cui memorizzano un valore di 2 byte. Invece di memorizzare numeri negativi, tuttavia, memorizzano solo valori positivi, producendo un intervallo utile da 0 a 65.535 (2 ^ 16) - 1). Due memorizza un valore di 4 byte (32 bit), compreso tra 0 e 4.294.967.295 (2 ^ 32 - 1).

Esempio

Unsigned int counter = 60 ; // declaration of variable with 
   type unsigned int and initialize it with 60

parola

Sulle schede Uno e altre basate su ATMEGA, una parola memorizza un numero senza segno a 16 bit. Su Due e Zero, memorizza un numero senza segno a 32 bit.

Esempio

word w = 1000 ;//declaration of variable with type word and initialize it with 1000

Lungo

Le variabili lunghe sono variabili di dimensioni estese per l'archiviazione di numeri e memorizzano 32 bit (4 byte), da -2.147.483.648 a 2.147.483.647.

Esempio

Long velocity = 102346 ;//declaration of variable with type Long and initialize it with 102346

non firmato a lungo

Le variabili lunghe senza segno sono variabili di dimensione estesa per l'archiviazione di numeri e memorizzano 32 bit (4 byte). A differenza dei long standard, i long senza segno non memorizzano i numeri negativi, rendendo il loro intervallo da 0 a 4.294.967.295 (2 ^ 32 - 1).

Esempio

Unsigned Long velocity = 101006 ;// declaration of variable with 
   type Unsigned Long and initialize it with 101006

corto

Un breve è un tipo di dati a 16 bit. Su tutti gli Arduino (basati su ATMega e ARM), uno short memorizza un valore a 16 bit (2 byte). Ciò produce un intervallo compreso tra -32.768 e 32.767 (valore minimo di -2 ^ 15 e valore massimo di (2 ^ 15) - 1).

Esempio

short val = 13 ;//declaration of variable with type short and initialize it with 13

galleggiante

Il tipo di dati per il numero in virgola mobile è un numero con virgola decimale. I numeri in virgola mobile vengono spesso utilizzati per approssimare i valori analogici e continui perché hanno una risoluzione maggiore degli interi.

I numeri in virgola mobile possono essere grandi come 3.4028235E + 38 e bassi come -3.4028235E + 38. Sono memorizzati come 32 bit (4 byte) di informazioni.

Esempio

float num = 1.352;//declaration of variable with type float and initialize it with 1.352

Doppio

Sulle schede Uno e altre basate su ATMEGA, il numero in virgola mobile a doppia precisione occupa quattro byte. Cioè, la doppia implementazione è esattamente la stessa del float, senza guadagno in precisione. Su Arduino Due, i double hanno una precisione di 8 byte (64 bit).

Esempio

double num = 45.352 ;// declaration of variable with type double and initialize it with 45.352