Если у вас есть двоичное число 10110, как я могу получить его, чтобы вернуть 5? например, число, которое говорит, сколько битов используется? Ниже приведены некоторые примеры:
- 101 должен вернуть 3
- 000000011 должен вернуть 2
- 11100 должен вернуть 5
- 101010101 должен вернуть 9
Как это можно получить самым простым способом на Java? Я придумал следующий метод, но могу ли я сделать это быстрее:
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;
}