В числовых литералах допускается стандартная экспоненциальная форма записи (например, 1.0E9). Она допустима даже для целых литералов, но при этом порядок не должен быть отрицательным.
Для того, чтобы облегчить чтение длинных чисел, внутри числового литерала можно использовать символы подчеркивания. Например, запись "1_000_000" является корректной. В Соединенных Штатах в тех же целях используют запятые, а в Европе - точки. Символы подчеркивания не могут следовать друг за другом, а числа не могут заканчиваться символом подчеркивания. Символы подчеркивания не изменяют значения числа.
Полезным свойством Ada является возможность записи литералов в других системах счисления с основанием от 2 до 16 ( в С эта возможность менее развита). Такие литералы обычно называют литералами с основанием. Для их записи указывают основание системы счисления, затем знак "#" , затем число в данной системе, и еще один знак "#" . Например, "2#1001_1000#" является двоичным числом, равным 128+16+8 = 152.
Для полноты описания приведем BNF числовых литералов:
числовой_литерал ::= десятичный_литерал | литерал_с_основанием
десятичный_литерал ::= число [ . число ] [ порядок ]
число ::= цифра { цифра | "_" }
порядок ::= "E" [ "+" | "-" ] число
литерал_с_основанием ::= основание "#" число_по_основанию "#" [ порядок ]
основание ::= число
число_по_основанию ::= расширенная_цифра { расширенная_цифра | "_" }
расширенная_цифра ::= расширенная_цифра | "A" | "B" | "C" | "D" | "E" | "F"
Даны два списка чисел:
Какой из списков содержит только допустимые числовые литералы?
Перейти к предыдущему разделу | Перейти к следующему разделу | Вернуться к содержанию Урока 3 |
---|
David A. Wheeler (dwheeler@ida.org)
Исходная копия этого документа находится по адресу
"http://www.adahome.com/Tutorials/Lovelace/s3s3.htm".
Исходная копия перевода размещена на сайте http://www.ada-ru.org
Перевод: Юрий Королев
Общая редакция перевода: Г.Ю. Сисюк