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

Exeption на переполнение int - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нахождение количества введеных элементов http://www.cyberforum.ru/cpp-beginners/thread1307286.html
Помогите составить программу: Ввод до нуля.Нахождение количества введеных элементов.
C++ Класс 1-го уровня класс 2-го уровня(класс-потомок) Построить класс 1-го уровня с указанными в индивидуальном задании полями и методами: - конструктор, - функция, которая определяет “качество” объекта – Q по заданной фор- муле ( - вывод информации об объекте. Построить класс 2-го уровня (класс-потомок), который содержит: - дополнительное поле P; - функцию, которая определяет “качество” объекта класса 2-го уровня – Qp и которая... http://www.cyberforum.ru/cpp-beginners/thread1307273.html
C++ Формирование и вывод на печать упакованной структуры из составляющих
Господа, проблема в том, что не совсем понимаю задание. Объясните что от меня требуется! Задание: •Ввод составляющих частей структуры данных, диапазон допустимых значений при этом выводите в виде подсказки; формирование и вывод на печать упакованной структуры из составляющих. •Ввод упакованной структуры данных в виде целого числа, вывод на печать в табличном виде составляющих частей Элемент...
Программа для посчета частоты появления символа в тексте C++
Подскажите, пожалуйста, что не так с программой. При запуске программы выдает "Введите текст" и не реагирует на клавиатуру #include <iostream> #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> # define size_text 350 # define size_char 256 using namespace std;
C++ Составить блок-схему к готовой программе http://www.cyberforum.ru/cpp-beginners/thread1307254.html
#include <stdafx.h> #include <iostream> #include <stdio.h> using namespace std; int main(){ setlocale(LC_ALL, "Russian"); int const n=1000; int arr; int i=0,ns,count=0,countr=0; cout<<"Введите последовательность чисел: ";
C++ Графический вывод дерева Всем привет! Нужна помощь при выводе троичного дерева на экран в горизонтальном виде. Мой код дерева: #include<iostream> #include<cmath> using namespace std; подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2897 / 1433 / 394
Регистрация: 18.10.2014
Сообщений: 2,639
21.11.2014, 22:45     Exeption на переполнение int
Цитата Сообщение от Lynatik001 Посмотреть сообщение
как называется ексепшен который бы поймал эту ошибку?
Никак.

* Если переполнение знакового целого типа возникает в процессе вычисления выражения, то поведение программы не определено.
* Если переполнение знакового целого типа возникает при приведении большего по диапазону целого типа к меньшему по диапазону, то поведение определяется реализацией.
* Беззнаковые целые типы не "переполняются" вообще, они реализуют арифметику "по модулю".

Более того, опираясь на вышеприведенные правила, современные компиляторы реализуют оптимизации, основанные на так называемой strict overflow semantics (строгая семантика переполнения). Согласно вышеприведенным правилам, компилятор имеет право полагать, что для знаковых целых типов из b>0 всегда следует a+b>a. Это значит, что компилятор имеет право заменить вот такой "хакерский" цикл

C++
1
2
for (int i = 0; i >= 0; ++i)
  // что-то
на бесконечный цикл

C++
1
2
for (int i = 0; ; ++i)
  // что-то
Другими словами, компиляторы имеют право оптимизировать код в рамках предположения, что целочисленные знаковые типа никогда не переполняются. Это означает, что все переполнения вы должны отлавливать самостоятельно.
 
Текущее время: 22:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru