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

Проверить int на переполнение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ cmd&VS http://www.cyberforum.ru/cpp-beginners/thread837442.html
Прошу помочь, пожалуйста, вот с чем: есть программа, которой передаются некоторые параметры через командную строку для последующего анализа и выполнения определённых действий, например: #include...
C++ Возврат указателя на массив указателей Доброго времени суток. Есть программа, где куча методов должны работать с одни массивом указателей. Как мне сделать, чтобы в функции передавать указатель на этот массив, возвращать указатель с тем же... http://www.cyberforum.ru/cpp-beginners/thread837437.html
Реализация класса и вектор C++
Всем привет! test.cpp(главный файл) /* * @pay - зарплата сотрудника * @countEl - позиция элемента в контейнере */ #include <iostream> #include <string.h> #include "people.h" #include...
Как реализовать вывод в файл из контейнера multiset (STL) C++
Здравствуйте, не могу реализовать вывод в файл из контейнера std::multiset, дело в том, чтобы вывести через поток в файл нужно преобразовать в символьный массив, т.к. AnsiString не работает с потоком...
C++ Помощь с функциями http://www.cyberforum.ru/cpp-beginners/thread837415.html
Добрый день, Хочу попросить у вас помощь просто не успеваю сделать, работаю над другой частью программы... Вобщем задание такое : Текст, представляющий собой последовательность строк, длина каждой...
C++ 3д вектор на плоскости Здраствуйте ! Перейду к делу . есть задание -Родительский класс , представляющий собой вектор на плоскости, заданный координатами, с методами нахождения модуля вектора и вывода координат его начала... подробнее

Показать сообщение отдельно
Rifle
26 / 26 / 5
Регистрация: 15.11.2012
Сообщений: 93
Завершенные тесты: 4
14.04.2013, 14:32
В заголовочном файле <limits.h> определены специальные константы, содержащие максимальные значения целочисленных типов данных. Можете их использовать для проверки переполнения.
Если вы в int поместите больше, чем он вмещает, то просто остаток будет добавляться в начало диапазона допустимых значений. Т.е., если signed int вмещает, допустим, от -1000 до 1000, и вы ему присвоите 1001, то его значение станет -1000, если присвоите 1002, то значение будет -999 и т.д.

Потеря точности - это когда используется приведение типа от переменных большего типа к меньшему. Например, если double вмещает 10000, а вы ее приведете к int, который вмещает 1000, то естественно получится лабуда (то самое переполнение). Либо если вы вещественные числа приводите к целым, т.е. число 3.9 приводите к типу int, то десятичная часть отбросится, int будет содержать значение 3.
Примеры:
C++
1
2
3
4
double a = 3.5;
int b = a; //потеря точности
double c = 900000000000000000000000000000;
int b = c; //переполнение
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru