Language | Libraries | Comparison
Integer constants are the numbers you type directly into your sketch, like 123
. Normally, these numbers are treated as base 10 (decimal) integers, but you can use special notation (formatters) to enter numbers in other bases.
Base Example Comment 10 (decimal) 123 2 (binary) B1111011 (only works with 1 to 8 bit values) 8 (octal) 0173 16 (hexadecimal) 0x7B
Decimal is base 10, this is the common-sense math with which you are aquainted.
Example: 101 == 101 decimal ((1 * 2^2) + (0 * 2^1) + 1)
Binary is base two. Only characters 0 and 1 are valid.
Example: B101 == 5 decimal ((1 * 2^2) + (0 * 2^1) + 1)
The binary formatter only works on bytes (8 bits) between 0 (B0) and 255 (B11111111). If it's convenient to input an int (16 bits) in binary form you can do it a two-step procedure such as this:
myInt = (B11001100 * 256) + B10101010; // B11001100 is the high byte
Octal is base eight. Only characters 0 through 7 are valid.
Example: 0101 == 65 decimal ((1 * 8^2) + (0 * 8^1) + 1)
One can generate a hard-to-find bug by unintentionally including a leading zero before a constant and having the compiler interpreting your constant (unwantedly) as octal
Hexadecimal (or hex) is base sixteen. Valid characters are 0 through 9 and letters A through F; A
has the value 10, B
is 11, up to F
, which is 15.
Example: 0x101 == 257 decimal ((1 * 16^2) + (0 * 16^1) + 1)
Corrections, suggestions, and new documentation should be posted to the Forum.