The printed form of an integer consists of a sequence of digits optionally preceded by a minus sign (‘-’). These are normally interpreted as base 10 integers. It is also possible to enter integers in base 2 (binary), 8 (octal), and 16 (hexadecimal); this is done by preceding the digit string by the string ‘0b’, ‘0o’, or ‘0x’ respectively. The characters A-F or a-f stand for digits greater than 9. For example, the following tokens all represent the integer fifteen:

     15   0b1111   0o17  0xf

Note that


is not a valid integer.

There is also a special notation for character constants. E.g.:

     0'A   0'\x41\   0'\101\

are all equivalent to 65 (the character code for ‘A’). ‘0'’ followed by any character except ‘\’ (backslash) is thus read as an integer. If ‘0'’ is followed by ‘\’, the ‘\’ denotes the start of an escape sequence with special meaning (see ref-syn-syn-esc).

Send feedback on this subject.