Форум программистов, компьютерный форум CyberForum.ru

Верхняя и нижняя граница типов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
mustcl
 Аватар для mustcl
22 / 22 / 12
Регистрация: 15.05.2011
Сообщений: 69
18.09.2012, 06:20     Верхняя и нижняя граница типов #1
Здравствуйте, подскажите пожалуйста есть ли в С++ функции подобные low и high из Pascal, чтобы узнать верхние и нижние значение типа. ( // INT_MAX и INT_MIN. не подходит, мне нужны именно функции)

Pascal
1
2
3
4
5
begin
    writeln(low(integer),' ',high(integer));
    writeln(low(boolean),' ',high(boolean));
    writeln(low(longint),' ',high(longint));
end.
result:
-32768 32767
FALSE TRUE
-2147483648 2147483647
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2012, 06:20     Верхняя и нижняя граница типов
Посмотрите здесь:

граница проверки простого числа C++
C++ Найти предельные значения для целочисленных типов. Не использовать заранее определенные константы границ типов.
C++ Даны числа x, y, x1, y1, x2, y2. Проверить истинность высказывания: «Точка с координатами (x, y) лежит внутри прямоугольника, левая верхняя вершина ко
C++ Переименование типов
Поле first — целое число, левая граница диапазона, включается в диапазон; поле second — целое число, правая граница диапазона, не включается в диапазо C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
18.09.2012, 07:12     Верхняя и нижняя граница типов #2
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <limits>
 
int main() {
   std::cout << std::numeric_limits< int >::min() << ' ' << std::numeric_limits< int >::max() << std::endl;
 
   return 0;
}
mustcl
 Аватар для mustcl
22 / 22 / 12
Регистрация: 15.05.2011
Сообщений: 69
18.09.2012, 15:34  [ТС]     Верхняя и нижняя граница типов #3
Toshkarik, спасибо. а как можно получить границы конкретной переменой?
Что то типа:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main(){
  int i;
  unsigned long ul;
  bool b;
  std::cout<< min(i)<< "" << max(i) <<std::endl;
  std::cout<< min(ul)<< "" << max(ul) <<std::endl;
  std::cout<< min(b)<< "" << max(b) <<std::endl;
  return 0;
}
p.s. извиняюсь за чуть не правильно сформулированный вопрос.. просто в Pascal low и high также работают и для переменных.
Pascal
1
2
3
4
5
6
var i:integer;
    b:boolean;
begin
    writeln(low(i),' ',high(i));
    writeln(low(b),' ',high(b));
end.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
18.09.2012, 15:48     Верхняя и нижняя граница типов #4
Ну, чисто принципиально можно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <limits>
 
template <typename Type>
Type min(const Type&)
{
  return std::numeric_limits<Type>::min();
}
 
template <typename Type>
Type max(const Type&)
{
  return std::numeric_limits<Type>::max();
}
 
int main()
{
  int i = 10;
  std::cout << min(i) << " - " << max(i);
}
mustcl
 Аватар для mustcl
22 / 22 / 12
Регистрация: 15.05.2011
Сообщений: 69
18.09.2012, 15:53  [ТС]     Верхняя и нижняя граница типов #5
~OhMyGodSoLong~, спасибо.
Yandex
Объявления
18.09.2012, 15:53     Верхняя и нижняя граница типов
Ответ Создать тему
Опции темы

Текущее время: 20:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru