Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FORTRAN.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

3. Типы данных.

В МС-Фортране существует шесть основных типов данных: 1. Целый (INTEGER*2 INTEGER*4) 2. Действительный (REAL*4 или REAL) 3. Двойной точности (REAL*8 или DOUBLE PRECISION) 4. Комплексный (COMPLEX*8 и COMPLEX*16) 5. Логический (LOGICAL*2 и LOGICAL*4) 6. Символьный.

Свойства, состав и форма представления констант каждого типа описаны на следующих страницах; требования по памяти приведены в таблице 2-2.

-----------------------T---------------------T-----------¬

| Тип | Число байтов |Примечание |

+----------------------+---------------------+-----------+

| LOGICAL | 2 или 4 | 1 |

| LOGICAL*2 | 2 | |

| LOGICAL*4 | 4 | |

| INTEGER | 2 или 4 | 1 |

| INTEGER*2 | 2 | |

| INTEGER*4 | 4 | |

| SHARACTER | 1 | 2 |

| SHARACTER*n | n | 3 |

| REAL | 4 | 4 |

| REAL*4 | 4 | |

| REAL*8 | 8 | 5 |

| DOUBLE PRECISION | 8 | |

| COMPLEX | 8 | 6 |

| COMPLEX*8 | 8 | |

| COMPLEX*16 | 16 | |

L----------------------+---------------------+------------

Таб.2-2. Требования по памяти.

Примечание к таблице 2-2: 1. Может использоваться 2 или 4 байта. По умолчанию - 4, но мета- командой $STORAGE может быть установлено 2 или 4. 2. CHARACTER и CHARACTER*1 - синонимы. 3. Максимальное n равно 127. 4. REAL и REAL*4 - синонимы. 5. REAL*8 и DOUBLE PRECISION - синонимы. 6. COMPLEX и COMPLEX*8 - синонимы.

Замечания.

На многих микропроцессорах команды, необходимые для выполне- ния 16-битовой арифметики, значительно быстрее и короче соответс- твующих команд для выполнения 32-битовой арифметики. Поэтому, по- ка Вы не используете метакоманду МС-Фортрана $STORAGE, устанавли- вающую 2, в программе по умолчанию будет 32-битовая арифметика и она будет выполняться существенно медленней, чем ожидается. (Смотрите описание метакоманды $STORAGE в части 6). Установка 2 метакомандой $STORAGE ускорит выполнение программы и сделает ее короче.

Вы можете использовать внутреннюю функцию INT2 для указанию компилятору использовать в выраженных 16-битовую арифметику.

3.1. Целые типы данных.

Целый тип данных состоит из подмножества целых чисел. Целая величина - это точное представление соответствующего целого. Це- лая величина занимает 2 или 4 байта, в зависимости от установки метакоманды $STORAGE. 2-байтовое целое, INTEGER*2, может содер- жать величину в диапазоне от -32767 до 32767. 4-байтовое целое, INTEGER*4, может содержать величину в диапазоне от -2147483647 до 2147463647.

Целые константы содержат последовательность одной или более десятичных цифр или определитель системы счисления, за которым следует строка цифр в диапазоне от 0...(основание системы счисле- ния - 1), где величины от 10 до 35 представлены буквами от А до Z соответственно. Указатель системы счисления содержит символ "#", которому обычно предшествует строка десятичных цифр, представляю- щая величину основания системы счисления. Если строка отсутству- ет, подразумевается, что основание равно 16. Если указатель сис- темы счисления отсутствует, подразумевается, что основание равно 10.

Любому формату может предшествовать произвольный арифмети- ческий знак плюс (+) или минус (-). Целые константы не должны вы- ходить из диапазона. Десятичная точка недопустима в целой конста- не.

Замечание: диапазон величин как для 16-битовых так и для 32- битовых целых не включает наиболее отрицательное число, которое может быть представлено в двоичном дополнительном коде этим чис- лом битов. Эти числа, 16#8000 и 16#80000000 обрабатываются как "неопределенные" для сигнализации об ошибке.

Хотя максимальная величина 32-битового целого определена как 2**31-1, при компиляции и счете будут считываться и большие вели- чины, которые выходят за диапазон 2**32. Но эти величины будут только считываться без ошибки, если их основание счисления не равно 10. Они будут интегрироваться как отрицательные числа с со- ответствующим внутренним представлением. Например, 16#FFFFFFFF приведет к тому что все биты 32-битового числа будут единицы, что соответствует арифметической величине -1.

Примеры целых констант:

123 +123 0

00000123 32767 -32767

-#AB05 2#010111 -36#ABZ07

В МС-Фортране точность целых определяется следующим образом:

*Константы.

Точность устанавливает метакоманда $STORAGE.

*Результат выражения.

Точность результата определяется точностью максимального операнда и величиной установленной метакомандой $STORAGE.

*Формальные параметры.

Если точность неизвестна, предлагается, что она такая же как у фактического параметра. Если тип известен, он должен точно со- ответствовать фактическому параметру (до тех пор пока параметр не передается величиной, использующей атрибут VALUE, описанный в части 7).

*Целые переменные и функции.

Точность задана для каждой переменной или функции (по умолча- нию установлена метакомандой $STORAGE).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]