2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Как программно определить диапазоны базовых типов?
Сообщение01.06.2009, 03:05 


04/04/08
481
Москва
То есть, скажем, нужно определить максимальное и минимальное значение типа long double. Как это сделать программно? В стандартной библиотеке limits.h нет константы для long double.

 Профиль  
                  
 
 Re: Как программно определить диапазоны базовых типов?
Сообщение01.06.2009, 11:10 


21/03/06
1545
Москва
Эээ... как так нет? А что есть? :)

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

 Профиль  
                  
 
 Re: Как программно определить диапазоны базовых типов?
Сообщение01.06.2009, 11:48 
Заслуженный участник
Аватара пользователя


06/10/08
6422
rar в сообщении #218773 писал(а):
То есть, скажем, нужно определить максимальное и минимальное значение типа long double. Как это сделать программно? В стандартной библиотеке limits.h нет константы для long double.

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

 Профиль  
                  
 
 Re: Как программно определить диапазоны базовых типов?
Сообщение01.06.2009, 19:55 
Заслуженный участник


04/05/09
4582
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 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group