Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > позиция самого старшего значащего нулевого бита


Автор: priam220 25.6.2013, 17:28
дан байт: 00001010. Нужно вычислить позицию второго нуля справа...

Автор: Temdegon 25.6.2013, 19:30
Код

        int b  =   100500;
        String bits = Integer.toBinaryString(b);
        int zeroIndex = bits.indexOf('0');
        System.out.println(bits.length() - zeroIndex);

Индия-стайл конечно, но вроде работает.
или
Код

Integer.numberOfTrailingZeros(Integer.highestOneBit(number^(Integer.MAX_VALUE >> (Integer.numberOfLeadingZeros(number) - 1)))+1;

Автор: priam220 26.6.2013, 10:02
Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)