Integer numbers can be specified in three bases, as follows:
A set of octal digits followed by
o specifies a
number in base 8. For example,
17o is equal to 1*8+7 = 15 in
A set of decimal digits (0-9) specifies a number in base 10.
A set of hexadecimal digits (0-9, a-f, A-F) preceded by 0x or 0X, specifies a number in base 16. For example, 0x3a, and 0X3A all specify the same number in base 16, which is equal to 3*16+10 = 58 in base 10.
By default, an integer number is assumed to have data type
(see Numerical Data Types). A non-hexadecimal number can be
specified to be
byte by appending a
B to the
number. A number in any base is specified to be of type
by appending a
W. Data type
long can be
specified explicitly by appending an
L. Data type
INT64 is selected by appending a
17L have data type
The data type specification, if any, follows the base specification, if
bB specifier is disallowed for hexadecimal numbers to
prevent confusion between a final hexadecimal digit
B and the
byte type specifier.
NOTE: With LUX version 3.1.86, the principle has been adopted that the
legality of a character as part of a number specification must be
determinable from that character and perhaps the directly following
character, but not more. This means that the method of identifying
hexadecimal numbers by appending an
X is now disallowed.
Also, use of the
B data type specifier on hexadecimal numbers was
disallowed starting with LUX version 3.1.86.