чтобы переполнение не произошло.
#include <iostream>
int main()
{
int number=65536;
long long temp=number*number;
std::cout << temp << std::endl;
return 0;
}
дь65536
очевидно, изint
ассортимент. Теперь, если бы я объявилtemp
какint
Я бы понял, почему это не удается. Но даже если этоlong long
выход всегда0
, Я считаю, что это в некоторой степени связано с неявным преобразованием типов, но я не могу понять, почему результат0
.
Это потому, что C ++ просто не позволяет конвертироватьint
вlong
? Если так, то почему это работает с меньшими числами?