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

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

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
  • Проголосовать: не нравится

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

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

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