Подсчитать количество единиц в двоичной записи огромного числа
Задача: Сколько единиц содержится в двоичной записи значения выражения: 4^2020 + 2^2017 – 15?
Так как число превышает допустимое значение типа double, моя программа выводит неправильный ответ: vr = infinity, count = 1. (count должен равняться 2015)
double vr = Math.Pow(4, 2020) + Math.Pow(2, 2017) - 15; // наше выражение
string b = Convert.ToString((int)vr, 2);
int count = 0; //счётчик единиц
for (int i = 0; i < b.Length; i++)
{
if (b[i] == '1')
{
count++;
}
}
Console.WriteLine(count);