Возможный дубликат:
умножение больших чисел, как перехватить переполнение
В непосредственной близости от металлических языков, таких как C, С++ и D, наиболее эффективный разумно переносимый способ (т.е. без использования ассемблера, хотя вы можете предполагать арифметику с двумя дополнениями и поведение оболочки) для обнаружения переполнения без знака 64-разрядное целое число при умножении?