2.4.2 Based Literals
1
A
based_literal is a
numeric_literal
expressed in a form that specifies the base explicitly.
Syntax
2
based_literal ::=
base #
based_numeral [.
based_numeral] # [
exponent]
3
4
based_numeral ::=
extended_digit {[
underline]
extended_digit}
5
extended_digit ::= digit | A | B | C | D | E | F
Legality Rules
6
The
base (the numeric
value of the decimal
numeral preceding the
first #) shall be at least two and at most sixteen. The
extended_digits
A through F represent the digits ten through fifteen, respectively. The
value of each
extended_digit of a
based_literal
shall be less than the base.
Static Semantics
7
The conventional meaning of based notation is assumed.
An exponent indicates the power of the base
by which the value of the based_literal without
the exponent is to be multiplied to obtain
the value of the based_literal with the exponent.
The base and the exponent,
if any, are in decimal notation.
8
The extended_digits A
through F can be written either in lower case or in upper case, with
the same meaning.
Examples
9
Examples of based
literals:
10
2#1111_1111# 16#FF# 016#0ff# -- integer literals of value 255
16#E#E1 2#1110_0000# -- integer literals of value 224
16#F.FF#E+2 2#1.1111_1111_1110#E11 -- real literals of value 4095.0