Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2014, 13:23   #1
DakotaZ
Пользователь
 
Регистрация: 31.07.2014
Сообщений: 48
По умолчанию C++ типы данных, значимость?

Интересует такой вопрос.
Изучаю C++ по книге Шилдта(Герберт Шилдт - C++ базовый курс), и там на страницах 51, 61 представлены таблицы типичных размеров значений и диапазонов для типов данных.

Собственно возникло несколько вопросов:
1) Как понять какая у меня среда, 16 или 32? Использую mingw32 под Windows, значит-ли это, что у меня 32 битная среда?

2) Для типа double указан диапазон 1,7E-308-1.7E+38
Как это понять? Что это за буквы E.

3) В чем смысл использования модификаторов типа signed и др., честно говоря не особо понял смысл этого.

4) Обязательно-ли запоминать диапазоны типов или достаточно просто приблизительно понимать кто сколько вмещает?

Заранее спасибо за ответы.
DakotaZ вне форума Ответить с цитированием
Старый 19.08.2014, 13:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
значит-ли это, что у меня 32 битная среда?
Да. Насколько я знаю этого компиля нет под 16-тибитку.
Цитата:
Что это за буквы E.
https://ru.wikipedia.org/wiki/%D0%AD...B8%D1%81%D1%8C
Цитата:
В чем смысл использования модификаторов типа signed и др., честно говоря не особо понял смысл этого.
В типах переменных? Указывает как процессору понимать число - со знаком или без.
Цитата:
Обязательно-ли запоминать диапазоны типов или достаточно просто приблизительно понимать кто сколько вмещает?
Ну главное держать возле себя мануал где можно это подсмотреть )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.08.2014, 14:03   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Е это экспонента, то есть степень в которую возводится число 10.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 19.08.2014, 14:08   #4
DakotaZ
Пользователь
 
Регистрация: 31.07.2014
Сообщений: 48
По умолчанию

Все спасибо за ответы, стало яснее
Экспоненту пока изучать не буду, нет надобности.
А вот про все остальное понял.
DakotaZ вне форума Ответить с цитированием
Старый 19.08.2014, 16:07   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
2) Для типа double указан диапазон 1,7E-308-1.7E+38
Как это понять? Что это за буквы E.
А когда это в школе на уроках математики рассказывали...
p51x вне форума Ответить с цитированием
Старый 19.08.2014, 20:15   #6
DakotaZ
Пользователь
 
Регистрация: 31.07.2014
Сообщений: 48
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А когда это в школе на уроках математики рассказывали...
Не помню что-бы рассказывали, честно
DakotaZ вне форума Ответить с цитированием
Старый 20.08.2014, 12:14   #7
halcyon
crafter
Форумчанин
 
Аватар для halcyon
 
Регистрация: 03.09.2011
Сообщений: 127
По умолчанию

Цитата:
Сообщение от DakotaZ Посмотреть сообщение
4) Обязательно-ли запоминать диапазоны типов или достаточно просто приблизительно понимать кто сколько вмещает?

Заранее спасибо за ответы.
http://www.cplusplus.com/reference/climits/?kw=climits
Подключите заголовочный файл climits(для целочисленных типов), и узнавайте какой тип сколько занимает, например так:
Код:
cout << "long max vulue: " << LONG_MAX << endl;
cfloat(Для типов с плавающей точкой)
halcyon вне форума Ответить с цитированием
Старый 20.08.2014, 16:08   #8
DakotaZ
Пользователь
 
Регистрация: 31.07.2014
Сообщений: 48
По умолчанию

Цитата:
Сообщение от halcyon Посмотреть сообщение
http://www.cplusplus.com/reference/climits/?kw=climits
Подключите заголовочный файл climits(для целочисленных типов), и узнавайте какой тип сколько занимает, например так:
Код:
cout << "long max vulue: " << LONG_MAX << endl;
cfloat(Для типов с плавающей точкой)
Круто
Спасибо.
А не знаете откуда взялся тип __int64, он предназначен для хранения time().
Он объявлен в time.h ?
DakotaZ вне форума Ответить с цитированием
Старый 20.08.2014, 16:11   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от DakotaZ Посмотреть сообщение
Круто
Спасибо.
А не знаете откуда взялся тип __int64, он предназначен для хранения time().
Он объявлен в time.h ?
он встроенный.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.08.2014, 16:16   #10
DakotaZ
Пользователь
 
Регистрация: 31.07.2014
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
он встроенный.
А почему в книгах о нем молчат?
Он из C99 ?
Шилдт писал что возможно стандарт C99 будет принят в C++, но описывал он C89, отсюда такое предположение)
DakotaZ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# Типы данных Dominatorsha Помощь студентам 1 08.04.2012 10:08
Типы данных psycho-coder Паскаль, Turbo Pascal, PascalABC.NET 6 04.02.2010 20:03
Типы данных nedden Помощь студентам 2 12.11.2008 17:18
Типы данных??? Рустам Общие вопросы Delphi 10 08.11.2007 08:03