2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Как программно определить диапазоны базовых типов?
Сообщение01.06.2009, 03:05 
То есть, скажем, нужно определить максимальное и минимальное значение типа long double. Как это сделать программно? В стандартной библиотеке limits.h нет константы для long double.

 
 
 
 Re: Как программно определить диапазоны базовых типов?
Сообщение01.06.2009, 11:10 
Эээ... как так нет? А что есть? :)

Пожалуй, если предположить, что арифметика с плавающей запятой на Вашей платформе реализована с соблюдением стандарта IEEE 754, достаточно просто сделать sizeof(long double) и сопоставить некоторой табличке...

 
 
 
 Re: Как программно определить диапазоны базовых типов?
Сообщение01.06.2009, 11:48 
Аватара пользователя
rar в сообщении #218773 писал(а):
То есть, скажем, нужно определить максимальное и минимальное значение типа long double. Как это сделать программно? В стандартной библиотеке limits.h нет константы для long double.

Есть хедер \tt <float.h>

 
 
 
 Re: Как программно определить диапазоны базовых типов?
Сообщение01.06.2009, 19:55 
e2e4 в сообщении #218848 писал(а):
Эээ... как так нет? А что есть? :)

Пожалуй, если предположить, что арифметика с плавающей запятой на Вашей платформе реализована с соблюдением стандарта IEEE 754, достаточно просто сделать sizeof(long double) и сопоставить некоторой табличке...

long double отсутствует в IEEE_754 - это 80-ти битовые числа.

-- Пн июн 01, 2009 13:53:33 --

На GCC есть предопределённый макрос __LDBL_MAX__.
А ещё в C++ можно воспользоваться
numeric_limits<long double>::max()

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group