Re[3]: Проверка выполнения сложения
От: rg45 СССР  
Дата: 11.04.12 19:47
Оценка:
Здравствуйте, netch80, Вы писали:

N>Поэтому простейший вариант анализа на переполнение без поддержки аппаратуры выглядит примерно так:


N>
N>int checked_add(int a, int b) {
N>  int sum = a + b;
N>  int ssd = a ^ b; // на самом деле нам нужен только старший бит
N>  if ((ssd >= 0) && ((ssd ^ sum) < 0))
N>    throw integer_overflow();
N>  return sum;
N>}
N>


Не находишь, что мой вариант
Автор: rg45
Дата: 10.04.12
проще и универсальнее? Универсальнее в том плане, что годится и для знаковых и для беззнаковых типов.

P.S. Предложил еще позавчера утром, никто и внимания не обратил, обидно
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.