Contents Index Previous Next
2.4.2 Based Literals
1
[
{literal (based)}
{binary literal} {base
2 literal} {binary (literal)}
{octal literal} {base
8 literal} {octal (literal)}
{hexadecimal literal}
{base 16 literal} {hexadecimal
(literal)} 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
{base} 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