У меня есть код для преобразования моего десятичного числа в двоичное число, но так как число огромно 1,4e8, оно либо всегда дает мне круглое число, либо использует слишком много памяти, и вылетает, вот мой код
double n = 1466333969;
double e = 10487;
double facteurs = 0;
long d = 0;
facteurs = factorisation(n);
d = calculerD(facteurs, e);
long dTemp = d / 2;
int dBin[70] = {};
int i = 0;
cout << dTemp << endl;
do
{
if (dTemp == floor(d / 2))
{
//cout << D << " " << dTemp << endl;
dBin[i] = 0;
}
else dBin[i] = 1;
d = floor(d / 2);
dTemp = d / 2;
//cout << D << " " << dBin[i] << endl;
i++;
} while (d != 0);
Я проверил, и функция calclerD работает нормально и возвращает правильное значение d, но потом кажется, что оно остается в longs.