Arduino - IntegerConstants

Arduino

Guide

Tutorials

Reference

Hardware

Software

Forum

Playground

Exhibition

Hacking

FAQ

Buy

Language | Libraries | Comparison

## Integer Constants

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)`

#### See also

- Constants
- byte
- int
- long

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

Edit Page | Page History | Printable View | Recent Site Changes