чтобы переполнение не произошло.

#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? Если так, то почему это работает с меньшими числами?

Ответы на вопрос(3)

Ваш ответ на вопрос