39 lines
2.4 KiB
Plaintext
39 lines
2.4 KiB
Plaintext
// Integer Literals:
|
|
//
|
|
// If present, base prefix must be: 0b 0B (binary) 0o 0O (octal)
|
|
// 0x 0X (hex)
|
|
//
|
|
// If present, length suffix must be: i I i64 I64 (INT64_T)
|
|
// u U u64 U64 (UINT64_T)
|
|
// i32 I32 (INT32_T) u32 U32 (UINT32_T)
|
|
// i16 I16 (INT16_T) u16 U16 (UINT16_T)
|
|
// i8 I8 (INT8_T) u8 U8 (UINT8_T)
|
|
// u1 U1 (BOOL_T) u0 U0 (UNIT_T)
|
|
// iV iv Iv IV (INTV_T)
|
|
|
|
// Binary Octal Decimal Hexadecimal
|
|
// ------------ ---------- ------------ --------------
|
|
@SAY 0b1101 0o016 19999999 0xFfBBcC0088 ; // INT64_T
|
|
@SAY 0B0101 0O777 -12345678 0X0a2B4c6D8eA ; // INT64_T
|
|
@SAY 0b1101I64 0o707I64 12345678i64 0xFfBBcC00i64 ; // INT64_T
|
|
@SAY 0b1101I 0o57707i -2345678I 0xfafbbCc99i ; // INT64_T
|
|
@SAY 0b1001U64 0o555u64 33345678u64 0xFfaBcC00U64 ; // UINT64_T
|
|
@SAY 0b10010100U 0o1234567u 3338u 0x99faBcC0EU ; // UINT64_T
|
|
@SAY 0B0101i32 0O753I32 987654i32 0XAAb4cCeeI32 ; // INT32_T
|
|
@SAY 0B0101u32 0O573u32 987654U32 0X0BAb4cCeeU32 ; // UINT32_T
|
|
@SAY 0B0101i16 0O753i16 -017654I16 0X000cCffi16 ; // INT16_T
|
|
@SAY 0B0101u16 0O633U16 27654U16 0X000dDbBu16 ; // UINT16_T
|
|
@SAY 0B0101i8 0O153i8 -000114I8 0X000ffi8 ; // INT8_T
|
|
@SAY 0B0101u8 0O132U8 00094U8 0X0000bu8 ; // UINT8_T
|
|
@SAY 0b0u1 0o0u1 00u1 0U1 0x000u1 ; // BOOL_T (FALSE)
|
|
@SAY 0B001u1 0O1u1 1u1 01U1 0X1u1 0x001U1 ; // BOOL_T (TRUE )
|
|
@SAY 0b0u0 0o000u0 00u0 0U0 0x0u0 0X000U0 ; // UNIT_T
|
|
@SAY -1234iV ; // INTV_T (cpp_int)
|
|
@SAY 56781234Iv ; // INTV_T (cpp_int)
|
|
|
|
// note: _ (underscores) can appear in the main numeric part of the literal,
|
|
// after any base prefix, and before any length suffix. If there is
|
|
// no prefix, the numeric literal cannot begin with underscore:
|
|
|
|
@SAY 100_000 1_u1 0x_FFFF_u16 1__0__ 0x__7890_ABCD_EFAB_CDEF__u64;
|