6.3.1 Общие положения
Внешние представления данных в различных языках программирования программируемых контроллеров состоят из числовых литералов, символьно-строковых литералов и литералов дат и времени.
Признана необходимость в обеспечении внешних представлений для двух различных типов данных, связанных со временем:
- данные о продолжительности времени при измерении и контроле событий;
- данные о времени суток, которые могут также включать в себя информацию о дате - для синхронизации начала и окончания событий в абсолютной временной шкале.
6.3.2 Числовые литералы и строковые литералы
Имеется два типа числовых литералов: целые литералы и действительные литералы. Числовой литерал определяется как десятичное число или число с основанием. Максимальное количество цифр для каждого вида числовых литералов должно быть достаточным для выражения всего диапазона значений с требуемой точностью для всех типов данных, которые представляются литералами в заданной реализации.
Единичные символы подчеркивания , вставленные между цифрами числового литерала не являются существенными. Никакое иное использование символов подчеркивания в числовых литералах не разрешается.
Десятичные литералы представляются в обычной десятичной нотации. Действительные литералы характеризуются наличием десятичной точки. Экспонента указывает на целую степень 10, на которую должно умножаться предшествующее число, чтобы достичь представленного значения. Десятичные литералы и экспоненты литералов могут содержать предшествующий знак или .
Литералы могут также представляться с основаниями 2, 8 и 16. Основание указывается в десятичной нотации. Для основания 16 используется расширенный набор цифр, состоящий из букв от A до F, с оговоренным десятичным значением от 10 до 15, соответственно. Числа с основанием не содержат ведущего знака или . Они интерпретируются как битово-строковые литералы.
Числовые литералы, представляющие положительные целые значения, могут использоваться как битово-строковые литералы.
Логические данные представляются числовыми литералами со значением (0) или один (1), или ключевыми словами FALSE или TRUE, соответственно.
Свойства и примеры числовых литералов приведены в таблице 5.
Тип данных логических или числовых литералов может указываться добавлением префикса типа к литералу, состоящего из имени элементарного типа данных и символа . Примеры приведены в свойстве 9 таблицы 5.
Таблица 5 - Числовые литералы
Номер | Описание | Пример | Объяснение |
1 | Целый литерал | -12, 0, 123_4, +986 | |
2 | Действительный литерал | 0.0, 0.4560, 3.14159_26 | |
3 | Действительные литералы с экспонентой | -1.34E-12, -1.34e-12 | |
4 | Двоичный литерал | Литерал с основанием 2 для представления: | |
2#1111_1111 | десятичного числа 255 | ||
2#1110_0000 | десятичного числа 224 | ||
5 | Восьмеричные литералы | Литерал с основанием 8 для представления: | |
8#377 | десятичного числа 255 | ||
8#340 | десятичного числа 224 | ||
6 | Шестнадцатеричный литерал | Литерал с основанием 16 для представления: | |
16#FF или 16#ff | десятичного числа 255 | ||
16#E0 или 16#e0 | десятичного числа 224 | ||
7 | Логический ноль и единица | 0 или 1 | |
8 | Логические FALSE и TRUE | FALSE TRUE | |
9 | Типизированный литерал | INT#-123 | Представление INT десятичного значения -123 |
INT#16#7FFF | Представление INT десятичного значения 32767 | ||
WORD#16#AFF | Представление WORD шестнадцатиричного значения 0AFF | ||
WORD#1234 | Представление WORD десятичного значения 1234=16#4D2 | ||
UINT#16#89AF | Представление UINT шестнадцатиричного значения 89AF | ||
CHAR#16#41 | Представление CHAR символа | ||
BOOL#0 | |||
BOOL#1 | |||
BOOL#FALSE | |||
BOOL#TRUE | |||
Примечание 1 - Ключевые слова FALSE и TRUE соответствуют логическим значениям 0 и 1, соответственно. |
6.3.3 Символьно-строковые литералы
Символьно-строковые литералы содержат однобайтовые или двухбайтовые кодированные символы:
- символьно-строковый литерал однобайтовых символов является последовательностью нуля или более символов, с предшествующим и завершающим символом одиночной кавычки. В строках однобайтовых символов, трехсимвольная комбинация символа доллара ($) с двумя следующими шестнадцатиричными символами интерпретируется как шестнадцатиричное представление восьмибитового кода символа, как показано в свойстве 1 таблицы 6;
- символьно-строковый литерал двухбайтовых символов является последовательностью 0 или более символов из набора символов ИСО/МЭК 10646, с предшествующим и завершающим символом двойной кавычки . В строках однобайтовых символов, трехсимвольная комбинация символа доллара ($) с двумя следующими шестнадцатиричными символами интерпретируется как шестнадцатиричное представление восьмибитового кода символа, как показано в свойстве 2 таблицы 6.
Примечание - Отношение стандартов ИСО/МЭК 10646 и Юникод:
Несмотря на то, что коды символов и формы кодирования стандартов Юникод и ИСО/МЭК 10646 синхронизированы, стандарт Юникод налагает дополнительные ограничения на реализации, чтобы гарантировать, что они трактуют символы одинаково во всех платформах и приложениях. В связи с этим, данный стандарт предоставляет широкий набор спецификаций функциональных символов, данных символов, алгоритмов и обширный справочный материал, который отсутствует в ИСО/МЭК 10646.
Двухсимвольные комбинации, начинающиеся с символа доллара интерпретируются, как показано в таблице 7, когда они встречаются в строках символов.
Таблица 6 - Символьно-строковые литералы
Номер | Описание | Пример |
Односимвольные символы и строки символов с | ||
1a | Пустая строка (длины ноль) | |
1b | Строка длины 1 или символ CHAR, содержащий единственный символ | |
1c | Строка длины один или символ CHAR, содержащий символ пробела | |
1d | Строка длины один или символ CHAR, содержащий символ одиночной кавычки | $ |
1e | Строка длины один или символ CHAR, содержащий символ двойной кавычки | |
1f | Поддержка двухсимвольных комбинаций таблицы 7 | |
1g | Поддержка представления символа с знаком доллара и двумя шестнадцатиричными цифрами | |
Двухбайтовые символы или символьные строки с (Примечание) | ||
2a | Пустая строка (длины ноль) | |
2b | Строка длины один или символ WCHAR, содержащий единственный символ | |
2c | Строка длины один или символ WCHAR, содержащий символ пробела | |
2d | Строка длины один или символ WCHAR, содержащий символ одиночной кавычки | |
2e | Строка длины один или символ WCHAR, содержащий символ двойной кавычки | |
2f | Поддержка двухсимвольных комбинаций таблицы 7 | |
2h | Поддержка представления символа с знаком доллара и четырьмя шестнадцатиричными цифрами | |
Типизированные однобайтовые символы или строковый литерал с # | ||
3a | Типизированная строка | |
3b | Типизированный символ | |
Двухбайтовые типизированные строковые литералы с # (NOTE) | ||
4a | Типизированные двухбайтовые строки (с использованием символа двойной кавычки) | |
4b | Типизированный двухбайтовый символ (с использованием символа двойной кавычки) | |
4d | Типизированный двухбайтовый символ (с использованием символа одиночной кавычки) | |
Примечание - Если конкретная реализация поддерживает свойство 4, но не поддерживает свойство 2, Реализатор может определить синтаксис и семантику для использования символа двойной кавычки. |