Wonder why. C# .Net 3.5
int a = 256 * 1024 * 1024; int b = 8; long c = b * a; Console.WriteLine(c);//<-- result is -2147483648
Where do
Because b * a is already overflowed integer, before it is assigned to the long data type variable.