Вещественные типы данных в lazarus-0.9.28.2-fpc-2.2.4-win64

Форум для изучающих FPC и их учителей.

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

Ответить
Inttelc
новенький
Сообщения: 13
Зарегистрирован: 18.11.2010 20:40:04

Вещественные типы данных в lazarus-0.9.28.2-fpc-2.2.4-win64

Сообщение Inttelc »

Какие вещественные типы данных lazarus-0.9.28.2-fpc-2.2.4-win64 являются 64-битными?
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

может int64
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Double, Real, Comp, Currency.

Ism писал(а):может int64

И давно он стал вещественным?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Inttelc
Вы это можете сами проверить с помощью SizeOf(Тип). ;)
Inttelc
новенький
Сообщения: 13
Зарегистрирован: 18.11.2010 20:40:04

Сообщение Inttelc »

Спасибо!
Получил такие результаты: SizeOf(Extended)=8, SizeOf(Double)=8, SizeOf(Real)=8, SizeOf(Int64)=8, SizeOf(Integer)=4.
По-моему что-то не так.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Inttelc почему вы так считаете?
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

наверное потому, что единицы измерения забыли указать) там байты должны быть, т.е. 8 байт = 64 бита
Inttelc
новенький
Сообщения: 13
Зарегистрирован: 18.11.2010 20:40:04

Сообщение Inttelc »

Mr.Smart писал(а):Inttelc почему вы так считаете?

Потому, что для всех типов одинаковый результат. Мне казалось, что, например, для Extended размер должен быть выше чем для Real.
Также я воспользовался этой функцией на 32-битном Delphi 2010. Там показывает 10 для Extended.
Как указать размерность?
Если переменная объявлена каким-то 64-битным типом данных, значит под хранение числа в памяти выделяется в 2 раза больший объем, чем в 32-битном варианте. То, есть мантиса числа будет больше. Это правильное понимание?
Спасибо!
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

По поводу Extended: http://www.mail-archive.com/fpc-devel@l ... 10882.html

А Real во Free Pascal на большинстве платформ синоним Double: http://freepascal.org/docs-html/prog/pr ... 970008.2.5
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Inttelc, а здесь пояснение от Sergei I. Gorelkin

Добавлено спустя 5 минут 4 секунды:
Различен только тип Extended. В Win32 10 байт, а Win64 8 байт. Все остальные вещественные типы имеют такой-же размер.
Ответить