2.4.2 Based Literals

From OC Systems Wiki!
< Guide:95lrm
Revision as of 23:36, 4 May 2019 by imported>WikiVisor (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A based_literal is a numeric_literal expressed in a form that specifies the base explicitly.


based_literal ::=
   base # based_numeral [.based_numeral] # [exponent]

base ::= numeral

based_numeral ::=
   extended_digit {[underline] extended_digit}

extended_digit ::= digit | A | B | C | D | E | F

Legality Rules

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

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.

The extended_digits A through F can be written either in lower case or in upper case, with the same meaning.


Examples of based literals:

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

Copyright © 1992,1993,1994,1995 Intermetrics, Inc.
Copyright © 2000 The MITRE Corporation, Inc. Ada Reference Manual