Como fazer um inteiro log2 () em C +
Nas bibliotecas padrão C ++, encontrei apenas um método de log de ponto flutuante. Agora eu uso o log para encontrar o nível de um índice em uma árvore binária floor(2log(index))
).
Code (C ++):
int targetlevel = int(log(index)/log(2));
Receio que, para alguns dos elementos da aresta (os elementos com valor 2 ^ n), o log retorne n-1.999999999999 em vez de n.0. Esse medo está correto? Como posso modificar minha declaração para que ela sempre retorne uma resposta correta?