Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 2
Регистрация: 13.09.2014
Сообщений: 60
1

Как отследить переполнение переменной?

20.08.2015, 20:14. Показов 2067. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.

Возможно ли отследить переполнение переменной?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2015, 20:14
Ответы с готовыми решениями:

Как отследить переполнение в рекурсии?
long int func(int k){ if (k==1) return 1; if (k==2) return 3; else { return...

Как вызвать переполнение переменной?
Всем привет, не могу додуматься как специально переполнить переменную, к примеру типа char?

Переполнение при обращении к переменной Char
Делаю все по Подбельскому, но для своей программы, ничего не получается. Собственно сам код:...

Почему не происходит переполнение переменной типа float?
1.Почему не происходит переполнение переменной overflow?Вернее происходит,но только после...

4
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
20.08.2015, 20:33 2
Возможно через ассемблерную вставку, регистры EFLAGS - overflow flag.
0
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 697
21.08.2015, 19:33 3
Для умножения можно через логарифмы сделать, если ответ будет больше размерности типа данных - значит переполнение: 120 * 20 = 2400, т.е (ln(120) + ln(20)) / ln(2) = 12 байт для сохранения результата

Для сложения как-то так:

Код
 ЗНАК  |   ДЕЙСТВИЕ    
 А | В |   +   |   -   
 - | - | С < 0 |  HET  
 + | - |  HET  | C > 0 
 - | + |  HET  | C < 0 
 + | + | C > 0 |  HET
Здесь С - результат и его правильный знак, а НЕТ - переполнение отсутствует

smartpointer, какие нафиг вставки, подобные вопросы задают те, кто только циклы с условиями учить начал, к тому же вставки зависят от платформы
0
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
22.08.2015, 00:35 4
Цитата Сообщение от Ваю Посмотреть сообщение
какие нафиг вставки, подобные вопросы задают те, кто только циклы с условиями учить начал, к тому же вставки зависят от платформы
У gnu кросплатформенный ассемблер, если что (убогие компилеры vs в оборот не беру). Можно и так как вы предложили, а можно напрямую получить результат из регистра, что быстрее.
0
27 / 27 / 9
Регистрация: 21.04.2015
Сообщений: 697
22.08.2015, 00:57 5
Я очень рад за гну и линь, но далеко не везде учатся на нём и то, что винда тоже есть никуда не денется, я только заметил про то, что уравень вопроса и ответа не стыкуются не под какими усилиями, ваш ответ конечно самый правильный, но он на данном этапе неприменим. Я тоже только начинаю учить язык и когда мне отвечают точно так же, то я с этим ничего сделать не могу, даже если очень захочу, а когда я повторяю вопрос, то в лучшем случае получаю ответ ни чуть не лучше, а то и отсыл в учебник, читая который я и задаю вопрос, потому что мне непонятно, в учебнике нет ответов совершенно на все вопросы, если бы я не читал ничего, то и вопроса бы не было, а была бы просьба сделать всё за меня
0
22.08.2015, 00:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2015, 00:57
Помогаю со студенческими работами здесь

Определить, почему во втором варианте программы происходит переполнение при вычислении переменной dist
Добрый вечер. Не могу понять, почему во втором варианте программы происходит переполнение при...

Как отследить переполнение в int64
Подскажите, как отследить переполнение при выполнении операций с _int64? Exception-ы не возникают!...

Отладчик VS 2010 - Как отследить программное изменение значения переменной
Подскажите как в отладчике Visual Studio отследить в каких местах кода меняется нужное значение...

Как визуально отследить изменение переменной в одном обработчике события?
Всем здравствуйте. При клике по Button1 через 3 сек в метке Label1 появится сообщение 'конец'....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru