Si vous avez le numéro binaire 10110, comment puis-je l'obtenir pour retourner 5? par exemple un nombre qui indique combien de bits sont utilisés? Il y a quelques De même exemples ci-dessous:Nombre de bits utilisés dans int
- 101 devrait revenir 3
- 000000011 devrait retourner 2
- 11100 devrait retourner 5
- 101010101 devrait retourner 9
Comment cela peut-il être obtenu le moyen le plus facile en Java? Je suis venu avec la méthode suivante, mais je peux être fait plus rapidement:
public static int getBitLength(int value)
{
if (value == 0)
{
return 0;
}
int l = 1;
if (value >>> 16 > 0) { value >>= 16; l += 16; }
if (value >>> 8 > 0) { value >>= 8; l += 8; }
if (value >>> 4 > 0) { value >>= 4; l += 4; }
if (value >>> 2 > 0) { value >>= 2; l += 2; }
if (value >>> 1 > 0) { value >>= 1; l += 1; }
return l;
}
en java un int utilise toujours 32 bits –
Il semble que vous Déroulé manuellement une boucle, là. – Ken
Le titre est trompeur car tous les 32 bits sont toujours utilisés dans un int. –