ГОСТ Р И С 0 10303-11 — 2009
12.2.1 Операторы сравнения значений
К операторам сравнения значений относятся:
- равно (=):
-не равно (<>);
-больше чем (>);
- меньше чем (<);
- больше или равно (>=);
- меньше или равно (<=).
Данные операторы могут применяться к числовым, логическим, строковым и двоичным операндам.
Кроме того, данные операторы могут применяться к элементам перечислений, объявленным в перечисле
ниях. не являющихся наращиваемыми перечислениями и не основанными на наращиваемых перечисле
ниях. Помимо этого, операторы = и о могут применяться к значениям агрегированного и объектного типов
данных и к элементам перечислений, объявленным в наращиваемых перечислениях или в перечислениях,
основанных на наращиваемых перечислениях (см. 12.11).
Для двух заданных значений а и b выражения а <> Ь и NOT (а = Ь) эквивалентны для всех типов
данных. Кроме того, если а и b не являются агрегированными или объектными типамиданных, то справед
ливы следующие утверждения:
- одно из следующих выражений имеет значение TRUE: а < b. а = Ь или а > Ь:
- выражение а <= Ь эквивалентно выражению (а < b) OR (а = Ь);
- выражение а >= b эквивалентно выражению (а > b) OR (а = Ь).
12.2.1.1 Сравнение чисел
Операторы сравнения значений, примененные кчисловым операндам, должны соответствовать мате
матическому упорядочению действительныхчисел.
П р и м е ч а н и е — При сравнении двух действительных чисел спецификация их точности не
учитывается.
Пример — Пусть задано:
а : REAL(3) := 1.23
Ь : REAL(5) := 1.2300:
тогда значением выражения а = Ь будет TRUE.
12.2.1.2 Сравнение двоичных чисел
При сравнении двух двоичных чисел сравниваются биты, расположенные в одинаковых позициях
каждого числа, начиная с первой (самой левой) пары битов, затем — биты во второй позиции и такдалее до
тех пор. пока не встретится пара несовпадающих битов или не будут проверены все пары. Если встрети
лась пара несовпадающих битов, то меньшим считается двоичное число, бит которого равен 0. Никакого
дополнительного сравнения не требуется. Если пара несовпадающих битов не встретилась, то меньшим
считается более короткое двоичное число (длина двоичного числа определяется с помощью функции
BLENGTH). Если сравниваемыедвоичные числа имеют одинаковуюдлину и все пары их битов совпадают, то
данные двоичные числа равны.
12.2.1.3 Сравнение логических значений
При сравнении двух значений типа LOGICAL (или BOOLEAN) должен соблюдаться следующий поря
док значений:
FALSE < UNKNOWN < TRUE.
12.2.1.4 Сравнение строковых значений
При сравнении двух строковых значений сравниваются символы, расположенные водинаковых по
зициях каждого строкового значения, начиная с первой (самой левой) пары символов, затем — символы,
расположенные во второй позиции, и так далее до тех пор. пока не встретится пара несовпадающих симво
лов или не будут проверены все пары символов. Если встретилась пара несовпадающих символов, то
меньшим считается строковое значение, содержащее символ с меньшим значением кода (в соответствии с
определением значений октетов для символов лоИСО/МЭК 10646). Никакогодополнительного сравнения не
требуется. Если пара несовпадающих символов не встретилась, то меньшим считается более короткое
строковое значение (длина строкового значения определяется с помощью функции LENGTH). Если срав
ниваемые строковые значения имеют одинаковую длину, и все пары их символов совпадают, то данные
строковые значения равны.
71