Here’s something for reference.
I can never find just quite the succinct reference to Arduino Variable types. Nowhere could i find a list of minimum and maximum values, the bits, and the memory used by each variable type.
Neither was there any clear definition of meaning of ‘unsigned’, which just means no plus or minus signs in this type – that is all numbers positive. This increases the highest number that can be stored in the same memory. (thank me in the comments).
Usage | Variable type | Bits | Min value | Max value | Ram usage | Comments |
---|---|---|---|---|---|---|
common | boolean | 8 | TRUE | FALSE | 1 byte | |
common | byte | 8 | 0 | 255 | 1 byte | |
– | char | 8 | -128 | 127 | 1 byte | A single ‘character’ e.g. ‘a’ is a single char. Represented by chr(65) or the binary: 01000001 |
– | word | 16 | 0 | 65535 | 2 byte | |
common | int | 16 | -32768 | 32767 | 2 byte | |
– | unsigned long | 32 | 0 | 4,294,967,295 | 4 byte | |
common | long | 32 | -2,147,483,648 | 2,147,483,647 | 4 byte | |
common | float | 32 | -3.4028235E+38 | 3.4028235E+38 | 4 byte | |
The below types are only included for compatibility or further study. | ||||||
redundant | unsigned char | 8 | 0 | 255 | 1 byte | use byte instead |
redundant | unsigned int | 16 | 0 | 65535 | 2 bytes | use word instead |
redundant | double | 32 | -3.4028235E+38 | 3.4028235E+38 | 4 bytes | use float instead |
The below types are special types (see arduino.cc) | ||||||
special | string | variable | 1 byte + x | An array of chars (used for storing strings to modify) |
||
special | enum | variable | N/A | Like boolean but custom fixed set of values allowed instead of TRUE/FALSE. | ||
special | struct | variable | N/A | Public sub variables (as if you’d made a public class) |
||
special | pointer | N/A | I’ll be honest, I wasn’t sure the use of this one. Here for completeness though! |
Source: | https://learn.sparkfun.com/tutorials/data-types-in-arduino |
Source: | https://playground.arduino.cc/Code/DatatypePractices |
Remark: | “Unsigned” means no negative sign. This increases the range of positive numbers available. |
Remark: | Unsigned variables that exceed their capacity roll over back to zero. This could be useful to iterate through arrays of limited length |
PPS If anyone can figure out how to properly format this table so it looks nice, with ‘center’ aligned text, please let me know wordpress was being frustrating!
(The formatting css is in the source, see the table tag)