## 12.15 Syntax of numeric literals

Numeric literals consist of a sequence of characters, or a single character in quotes, evaluating to an integer.

They can take any of the following forms:

• `decimal-digits`.
• `0xhexadecimal-digits`.
• `&hexadecimal-digits`.
• `n_base-n-digits`.
• `'character'`.

where:

`decimal-digits`
Is a sequence of characters using only the digits 0 to 9.
`hexadecimal-digits`
Is a sequence of characters using only the digits 0 to 9 and the letters A to F or a to f.
`n_`
Is a single digit between 2 and 9 inclusive, followed by an underscore character.
`base-n-digits`
Is a sequence of characters using only the digits 0 to (`n`-1)
`character`
Is any single character except a single quote. Use the standard C escape character (\') if you require a single quote. The character must be enclosed within opening and closing single quotes. In this case, the value of the numeric literal is the numeric code of the character.

You must not use any other characters. The sequence of characters must evaluate to an integer.

In A32/T32 code, the range is 0 to 232-1, except in `DCQ`, `DCQU`, `DCD`, and `DCDU` directives.

In A64 code, the range is 0 to 264-1, except in `DCD` and `DCDU` directives.

### Note:

• In the `DCQ` and `DCQU`, the integer range is 0 to 264-1
• In the `DCO` and `DCOU` directives, the integer range is 0 to 2128-1

## Examples

```a       SETA    34906
addr    DCD     0xA10E
LDR     r4,=&1000000F
DCD     2_11001010
c3      SETA    8_74007
DCQ     0x0123456789abcdef
LDR     r1,='A'      ; pseudo-instruction loading 65 into r1
ADD     r3,r2,#'\''  ; add 39 to contents of r2, result to r3```
 Non-Confidential PDF version DUI0801J Copyright © 2014–2017, 2019 Arm Limited or its affiliates. All rights reserved.