Contents Index Previous Next
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
Wording Changes from Ada 83
10.a
The rule about which letters are
allowed is now encoded in BNF, as suggested by Mike Woodger. This is
clearly more readable.
Contents Index Previous Next Legal