1.49.1. Integer Lexemes

The compiler directly supports literals of all the numeric types, but the lexicology is a sanitised version of that used by C. Note in particular that 010 is decimal ten in Felix!
Start felix section to tut/examples/tut_beg158.flx[1 /1 ]
     1: #line 2630 "./lpsrc/flx_tutorial.pak"
     2: #import <flx.flxh>
     3: 
     4: // radix
     5: {
     6:   val i1 = 999;      // decimal
     7:   val i2 = 0b1111;   // binary
     8:   val i3 = 0o7777;   // octal
     9:   val i4 = 0d9999;   // decimal
    10:   val i5 = 0xF1_F2;  // hex
    11: };
    12: 
    13: // underscores
    14: {
    15:   val i1 = 123_456;
    16:   val i2 = 0x_FF_FFu;
    17: };
    18: 
    19: // normal signed integers
    20: {
    21:   val i1 : tiny = 1t;
    22:   val i2 : short = 1s;
    23:   val i3 : int = 1; // default
    24:   val i4 : int = 1i;
    25:   val i5 : long = 1l;
    26:   val i6 : vlong = 1ll;
    27: };
    28: 
    29: // normal unsigned integers
    30: {
    31:   val i1 : utiny = 1tu;
    32:   val i2 : utiny = 1ut; // u may be first or last
    33:   val i3 : ushort = 1su;
    34:   val i4 : uint = 1u; // default
    35:   val i5 : uint = 1iu;
    36:   val i6 : ulong = 1lu;
    37:   val i7 : uvlong = 1vu;
    38:   val i8 : uvlong = 1llu; // alternate
    39: };
    40: 
    41: // exact signed integers
    42: {
    43:   val i1 : int8 = 1i8;
    44:   val i2 : int16 = 1i16;
    45:   val i3 : int32 = 1i32;
    46:   val i4 : int64 = 1i64;
    47: };
    48: 
    49: // exact unsigned integers
    50: {
    51:   val i1 : uint8 = 1u8; // 1iu8 not allowed
    52:   val i2 : uint16 = 1u16;
    53:   val i3 : uint32 = 1u32;
    54:   val i4 : uint64 = 1u64;
    55: };
    56: 
    57: // floats obey C99 rules, except we allow underscores
    58: {
    59:   val x1 : float = 2.2f;
    60:   val x2 : double = 2.2;
    61:   val x3 : ldouble = 2.2l;
    62:   val x4 : double = 22_345.78;
    63:   // val x5 : float = 0xFFFF.FFp4f; // doesn't work on g++ 2.95.3
    64:   val x6 : double = 2.2e4;
    65:   val x7 : float = 2.2e4f;
    66: };
    67: 
End felix section to tut/examples/tut_beg158.flx[1]