Type char is by default unsigned (that is, char is the same as unsigned char). The other scalar types are all signed by default (for example, int is the same as signed int).
The following table specifies the possible formats for each of the supported scalar types:
| Type | Default Format | Default Value Range | Alternative Formats (flexible type configuration) | |
|---|---|---|---|---|
| Min | Max | |||
| char (unsigned) | 8-bit | 0 | 255 | 8-, 16-, & 32-bit |
| signed char | 8-bit | -128 | 127 | 8-, 16-, & 32-bit |
| unsigned char | 8-bit | 0 | 255 | 8-, 16-, & 32-bit |
| signed short | 16-bit | -32,768 | 32,767 | 8-, 16-, & 32-bit |
| unsigned short | 16-bit | 0 | 65,535 | 8-, 16-, & 32-bit |
| enum (unsigned) | 16-bit | 0 | 65,535 | 8-, 16-, & 32-bit |
| signed int | 16-bit | -32,768 | 32,767 | 8-, 16-, & 32-bit |
| unsigned int | 16-bit | 0 | 65,535 | 8-, 16-, & 32-bit |
| signed long | 32-bit | -2,147,483,648 | 2,147,483,647 | 8-, 16-, & 32-bit |
| unsigned long | 32-bit | 0 | 4,294,967,295 | 8-, 16-, & 32-bit |
| signed long long | 32-bit | -2,147,483,648 | 2,147,483,647 | 8-, 16-, & 32-bit |
| unsigned long long | 32-bit | 0 | 4,294,967,295 | 8-, 16-, & 32-bit |