Como posso multiplicar números realmente grandes c ++

eu tenho o seguinte código

      int i, a, z;
i = 2343243443;
a = 5464354324324324;
z = i * a;
cout << z << endl;

Quando estes são multiplicados, obtém -1431223188, que não é a resposta. Como posso fazer com que eu me dê a resposta correta?

questionAnswers(6)

yourAnswerToTheQuestion