How to avoid overflow in expr. A * B - C * D

Posted by Ir0nm on Stack Overflow See other posts from Stack Overflow or by Ir0nm
Published on 2012-11-05T17:16:08Z Indexed on 2012/11/07 11:00 UTC
Read the original article Hit count: 288

Filed under:
|

I need to compute an expression which looks like: A*B - C*D, where their types are: signed long long int A, B, C, D; Each number can be really big (not overflowing its type). While A*B could cause overflow, at same time expression A*B - C*D can be really small. How can I compute it correctly?

For example: MAX * MAX - (MAX - 1) * (MAX + 1) == 1, where MAX = LLONG_MAX - n and n - some natural number.

© Stack Overflow or respective owner

Related posts about c

    Related posts about overflow