Quote Originariamente inviata da Luciano79 Visualizza il messaggio
Ciao a tutti,
qual'è secondo voi il metodo più efficace (in termini di velocità/prestazioni) per trovare la posizione del bit a "1" più significativo in un numero di 64bit (ulong)?

Esempio (su 8 bit):
codice:
            ----------
posizione: | 01234567 |
valore:    | 00010110 |
            ----------
devo ottenere 3, senza però effettare cicli pesanti tipo scorrere tutti i bit fino al primo "1"...

Mi viene in mente una ricerca dicotomica, ma forse c'è di meglio...

Grazie
Luciano

Per una ricerca dicotomica è necessario avere gli elementi ordinati e solitamente viene utilizzata quando sono "unici" quindi differenti fra loro... dunque con un array di soli 0 e 1 non credo possa essere efficace... in questo caso la ricerca dovrebbe essere sequenziale, non conosco altri metodi che possano avere meno complessità computazionale in questo caso..