Potrzebuję bitowego narzędzia liczącego w C++, które jest w stanie zliczyć numer najbardziej znaczącego bitu w stałej liczbowej i przedstawić tę liczbę jako stałą czasu kompilacji.Metaprogram do zliczania bitów
Wystarczy, aby wszystko jasne - numer najbardziej znaczącego bitu do zbioru wartości liczbowych:
255 => 8 (11111111b)
7 => 3 (111b)
1024 => 11 (10000000000b)
26 => 5 (11010b)
jestem nowy w programowaniu szablonu, ale myślę, że jest droga.
Proszę podać kilka próbek kodu, każda pomoc będzie doceniona.
Innymi słowy, trzeba 'piętro (lg (n)) + 1 ', gdzie' lg' jest podstawa 2 logarytm. – outis
Jaka byłaby poprawna wartość dla 0? –
Tak, potrzebuję dokładnie 'podłogi (lg (n)) + 1'. '0' oznacza, że bity nie są wymagane do zapisania tego numeru, więc wynik również wynosi 0. – Keynslug