проверка возможного переполнения

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
versus
Сообщения: 45
Зарегистрирован: 12 май 2004, 01:37

Странно, не смог найти подходящий топик в поиске... Может быть плохо искал?
Мне интересно как можно было бы реализовать subj при арифметических операциях? Наверняка кто-нибудь из здесь присутсвующих сталкивался с такой задачей...
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

а в чем проблема ??
в МСДН есть максимально возможные значения
в VC6 есть константы не уверен что для всех типов но для части есть ну и мона в принципе прикинуть
В SAD - все в SAD.
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

как вариант след алгоритм - чисто с ходу поэтому можно придумать лучше
делаешь с этой максимальной константой обратное действие и сравниваешь со следующим участником операции
то есть
для байт
MAXBYTE=128;
a = 100
b =29
c=0
d=MAXBYTE-a
d<b -> a+b == overflow
В SAD - все в SAD.
versus
Сообщения: 45
Зарегистрирован: 12 май 2004, 01:37

да, наверное это решение...
Kolinus писал(а):в МСДН есть максимально возможные значения
в VC6 есть константы не уверен что для всех типов но для части есть ну и мона в принципе прикинуть
Думаю, в этом случае лучше пользоваться стандартным

std::numeric_limits<T>::max()

из

<limits>
Ответить