crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> C++ - бесконечность
++Norton++
  опции профиля:
сообщение 3.12.2008, 21:25
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 98
Регистрация: 5.10.2008
Пользователь №: 380

Спасибо сказали: 0 раз(а)




Репутация:   1  


Есть такой вопрос... увидел в одном исходнике на паскале, что "машинную бесконечность" задали как: 1.E+30.
Как можно задать бесконечность в C++? Возможно ли это? Главное, чтобы это число было самым большим из возможных типа int.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.12.2008, 21:52
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(++Norton++ @ 4.12.2008, 0:25) *
типа int.
это 4 байта
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
++Norton++
  опции профиля:
сообщение 3.12.2008, 22:21
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 98
Регистрация: 5.10.2008
Пользователь №: 380

Спасибо сказали: 0 раз(а)




Репутация:   1  


Т.е. к примеру, какое число можно взять? Тогда 99999999 будет самым большим возможным?

Сообщение отредактировал ++Norton++ - 3.12.2008, 22:23
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 4.12.2008, 1:47
Сообщение #4


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


самым большим будет число примерно чуть больше двух миллиардов
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.12.2008, 6:53
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


вообще должны быть константы определены в инклюдах компиллера, вот только названия не помню.


нашел, см. limits.h у своего компилятора, у меня есть такие макросы:
#define SCHAR_MIN    (-128)
#define SCHAR_MAX    127

#define UCHAR_MAX    255

/* TODO: Is this safe? I think it might just be testing the preprocessor,
*       not the compiler itself... */
#if    ('\x80' < 0)
#define CHAR_MIN    SCHAR_MIN
#define CHAR_MAX    SCHAR_MAX
#else
#define CHAR_MIN    0
#define CHAR_MAX    UCHAR_MAX
#endif

/*
* Maximum and minimum values for ints.
*/
#define INT_MAX        2147483647
#define INT_MIN        (-INT_MAX-1)

#define UINT_MAX    0xffffffff

/*
* Maximum and minimum values for shorts.
*/
#define SHRT_MAX    32767
#define SHRT_MIN    (-SHRT_MAX-1)

#define USHRT_MAX    0xffff

/*
* Maximum and minimum values for longs and unsigned longs.
*
* TODO: This is not correct for Alphas, which have 64 bit longs.
*/
#define LONG_MAX    2147483647L
#define LONG_MIN    (-LONG_MAX-1)

#define ULONG_MAX    0xffffffffUL
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 4.12.2008, 8:44
Сообщение #6


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(++Norton++ @ 3.12.2008, 21:25) *
Главное, чтобы это число было самым большим из возможных типа int.
0xFFFFFF. ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.12.2008, 11:35
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Litkevich Yuriy @ 4.12.2008, 9:53) *
0xFFFFFF. ;)
для инта не прокатит, он ведь знаковый по-умолчанию, еденичка в старшем разряде даст отрицательное число.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 4.12.2008, 12:14
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


std::numeric_limits<int>::max()

Пойдёть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
++Norton++
  опции профиля:
сообщение 4.12.2008, 17:18
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 98
Регистрация: 5.10.2008
Пользователь №: 380

Спасибо сказали: 0 раз(а)




Репутация:   1  


Всем огромное спасибо за помощь!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 9:03