Spec-Zone.ru › GNU Fortran 14

5.1.30 Поразрядные логические операторы

С флагом -fdec GNU Fortran ослабляет ограничения на типы для логических операторов, чтобы разрешить целочисленные операнды и выполнить соответствующую поразрядную операцию вместо этого. Этот флаг предназначен только для совместимости и следует избегать его использования в новом коде. Рассмотрите:

INTEGER :: i, j
i = z'33'
j = z'cc'
print *, i .AND. j

В этом примере, скомпилированном с -fdec, GNU Fortran заменит операцию .AND. вызовом встроенной функции IAND — Bitwise logical and, что даст результат поразрядной конъюнкции i и j.

Обратите внимание, что это преобразование произойдёт, если хотя бы один операнд имеет целочисленный тип. В результате логический операнд будет преобразован в целое число, когда другой операнд является целым числом в логической операции. В этом случае .TRUE. преобразуется в 1 и .FALSE. в 0.

Вот соответствие логических операторов встроенным поразрядным функциям при использовании -fdec:

Оператор Встроенная функция Поразрядная операция
.NOT. NOT — Logical negation дополнение
.AND. IAND — Bitwise logical and пересечение
.OR. IOR — Bitwise logical or объединение
.NEQV. IEOR — Bitwise logical exclusive or исключающее ИЛИ
.EQV. NOT — Logical negation(IEOR — Bitwise logical exclusive or) дополнение от исключающего ИЛИ

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/Bitwise-logical-operators.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API