Логарифм очень-очень большого числа
Я должен найти журнал очень большого числа.
Я делаю это в C ++
Я уже сделал функцию умножения, сложения, вычитания, деления, но были проблемы с логарифмом. Мне не нужен код, мне нужен простойидея как это сделать с помощью этих функций.
Благодарю.
Постскриптум Извините, я забыл вам сказать: я должен найтитолько двоичный логарифм из этого числа
П.С.-2 я нашел вВикипедия:
int floorLog2(unsigned int n) {
if (n == 0)
return -1;
int pos = 0;
if (n >= (1 <<16)) { n >>= 16; pos += 16; }
if (n >= (1 << 8)) { n >>= 8; pos += 8; }
if (n >= (1 << 4)) { n >>= 4; pos += 4; }
if (n >= (1 << 2)) { n >>= 2; pos += 2; }
if (n >= (1 << 1)) { pos += 1; }
return pos;
}
если я переделал его под большие цифры, он будет работать правильно?