Справочник по Ada (Ada 2022)
2.4.2 Литералы в разных системах счисления
Литерал based_literal — это numeric_literal, записанный в форме, явно указывающей систему счисления.
Синтаксис
Правила лексического анализа
Значение base (целочисленное значение десятичного numeral перед первым символом #) должно быть не меньше 2 и не больше 16. Символы A—F представляют собой цифры от 10 до 15 соответственно. Значение каждой цифры extended_digit в литерале based_literal должно быть меньше, чем основание системы счисления.
Статическая семантика
Предполагается общепринятое значение для обозначения чисел в разных системах счисления. Показатель степени exponent указывает на степень основания, на которую умножается значение based_literal без показателя степени, для получения значения с показателем степени. Значение основания base и, при необходимости, показателя степени exponent записаны в десятичной системе счисления.
Цифры 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