Справочник по Ada 95
2.4.2 Литералы в заданной системе счисления
based_literal — это numeric_literal, представленный в форме, явно указывающей систему счисления.
Синтаксис
based_literal ::=
base # based_numeral [.based_numeral] # [exponent]
base # based_numeral [.based_numeral] # [exponent]
base ::= numeral
based_numeral ::=
extended_digit {[underline] extended_digit}
extended_digit {[underline] extended_digit}
extended_digit ::= digit | A | B | C | D | E | F
Правила допустимости
Основание (числовое значение десятичного numeral, предшествующего первому символу #) должно быть не меньше двух и не больше шестнадцати. Символы extended_digit от A до F представляют собой цифры от десяти до пятнадцати соответственно. Значение каждого extended_digit в based_literal должно быть меньше основания.
Статическая семантика
Предполагается общепринятое значение записи в заданной системе счисления. Экспонента указывает степень основания, на которую нужно умножить значение based_literal без экспоненты, чтобы получить значение based_literal с экспонентой. Основание и экспонента (если она есть) представлены в десятичной форме.
Символы extended_digit от A до F могут быть написаны как строчными, так и прописными буквами, что имеет одинаковый смысл.
Примеры
Примеры литералов в заданной системе счисления:
2#1111_1111# 16#FF# 016#0ff# -- целые литералы со значением 255
16#E#E1 2#1110_0000# -- целые литералы со значением 224
16#F.FF#E+2 2#1.1111_1111_1110#E11 -- вещественные литералы со значением 4095.0
16#E#E1 2#1110_0000# -- целые литералы со значением 224
16#F.FF#E+2 2#1.1111_1111_1110#E11 -- вещественные литералы со значением 4095.0