Table of Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Notes DownloadECMA-334 C# Language Specification


9 Lexical structure
9.4 Tokens
9.4.4 Literals
9.4.4.2 Integer literals
Paragraph 11 Integer literals are used to write values of types int, uint, long, and ulong. 2 Integer literals have two possible forms: decimal and hexadecimal. integer-literal :: decimal-integer-literal hexadecimal-integer-literal decimal-integer-literal :: decimal-digits integer-type-suffixopt decimal-digits :: decimal-digit decimal-digits decimal-digit decimal-digit :: one of 0 1 2 3 4 5 6 7 8 9 integer-type-suffix :: one of U u L l UL Ul uL ul LU Lu lU lu hexadecimal-integer-literal :: 0x hex-digits integer-type-suffixopt 0X hex-digits integer-type-suffixopt hex-digits :: hex-digit hex-digits hex-digit hex-digit :: one of 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
Paragraph 21 The type of an integer literal is determined as follows: - 2 If the literal has no suffix, it has the first of these types in which its value can be represented: int, uint, long, ulong.
- 3 If the literal is suffixed by U or u, it has the first of these types in which its value can be represented: uint, ulong.
- 4 If the literal is suffixed by L or l, it has the first of these types in which its value can be represented: long, ulong.
- 5 If the literal is suffixed by UL, Ul, uL, ul, LU, Lu, lU, or lu, it is of type ulong.
Paragraph 31 If the value represented by an integer literal is outside the range of the ulong type, a compile-time error occurs. [Note: As a matter of style, it is suggested that "L" be used instead of "l" when writing literals of type long, since it is easy to confuse the letter "l" with the digit "1". end note]
Paragraph 41 To permit the smallest possible int and long values to be written as decimal integer literals, the following two rules exist: |
Jagger Software Ltd |
Company # 4070126 |
VAT # 762 5213 42 |

