Модератор: Модераторы


Для процессоров Intel 80x86, тип extended занимает до 10 байтов памяти. Подробности см. в руководстве программиста Intel.
Для всех других процессоров, которые поддерживают операции с плавающей точкой, тип extended – это псевдоним для типа, который поддерживает наибольшую точность, обычно это тип double. На процессорах, которые не поддерживают операции сопроцессора (и которые имеют переключатель {$E+}), тип extended обычно отображается как тип single.
7bit писал(а):linux 64-bit extended = 10 байт
sts писал(а):странно
Таблица 2.1. Целочисленные типы данных объектпаскаля
Тип          Диапазон                     Размер,байт
Byte         0...255                      1 
Word         0...65535                    2
LongWord     0...4294967295               4 
ShortInt     -128...127                   1   
Integer      -2147483648...2147483647     4      
LongInt      -2147483648...2147483647     4      
Smallint     -32768...32767               2               
Int64        -2^63...2^63                 8                      
Cardinal     0...4294967295               4  
Таблица 2.2. Вещественные типы данных
Тип        Диапазон                                      Кол-во знач-х цифр   Размер, байт
Single     1.5E45...3.4E + 38   ___________________________  7—8    __________  4
Real       2.9E − 39...1.7E + 38  _________________________  15—16  __________  8
Double     5.0E − 324...1.7E + 308  _______________________  15—16  __________  8
Extended   3.4E − 4932...3.4E + 4932  _____________________  19—20  __________  10
Comp       −2^63...2^63   _________________________________  19—20  __________  8
Currency   −922337203685477.5808...922337203685477.5807 ___  19—20  __________  8
Сквозняк писал(а):У меня давно в шпаргалке копипаста есть
extended is a 80-bit wide floating-point data type. There are FPUs that internally use 80 bits for increased precision. FPC allows to use this gain in precision.
Light bulb Note: If some platform does not support the extended data type, it will be mapped to largest available floating-point number data available, i. e. usually double.
var
q1: double;
w1:extended;
begin
q1:=pi;
w1:=pi;
writeln(q1);
writeln(w1);
end.
3.1415926535897931E+000
3.14159265358979323851E+0000
3.1415926535897931E+000
3.1415926535897931E+000



Снег Север писал(а):По-моему проблема в том, что подавляющее число программистов выучила, в лучшем случае, школьную арифметику и не имеет представления о вычислительной неустойчивости алгоритмов и накоплении ошибок. И главное - как их избегать.
WAYFARER писал(а):Для Linux64 все работает как задумано, для систем с процессорами arm нет.

Сквозняк писал(а):Вроде работает extended в 64 битном линуксе:
WAYFARER писал(а):Имеется некоторая библиотечка
sts писал(а):в любом случае там софтварная эмуляция, железо то не поддерживает, видимо в линухе в ядре были данные с этим типом вот и поднапряглись

WAYFARER писал(а):Нет, не эмуляция. По сути это long double из C (использует х87 FPU)
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1