Мне нужно найти высший порядок 1 в некоторых длинных, целых и коротких шрифтах в Java. Например, если у меня был символ, который выглядел как 00110101
, мне нужен метод, который будет возвращать 2 (индекс высшего порядка 1).
Теперь я знаю, что вы можете сделать это с помощью цикла for, например:
for(int i=0; i<8; i++)
if((x & 1<<i) != 0) return i;
return -1;
но это намного медленнее, чем я хочу сделать. Я знаю, что у современных процессоров есть инструкции, которые делают это на чипе, поэтому я хочу знать, как я могу сделать вызов, а не иметь явный цикл.
РЕДАКТИРОВАТЬ: Бонусные баллы, если вы можете просто вернуть индексы всех из тех в примитиве.
Спасибо.