Блог пользователя osource

Автор osource, история, 3 года назад, По-английски

let's say I have 2 numbers x and y. How do I check if x*y results in an overflow in C++?. Both x and y are long long int.

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

»
3 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

if x>LLONG_MAX/y(or y>LLONG_MAX/x), then overflow

»
3 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
long long mul = a * b;
if (mul / a != b) {
  //overflowed
}