How does the following program print the exact value of 2^1023 without having any precision loss in C language?
#include <stdio.h>
#include<math.h>
int main()
{
// Printing the value of 2 ^1023
printf("%.0f",pow(2,1023));
return 0;
}
Output: 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608