Проверьте, установлен ли только один бит внутри целого числа (независимо от его позиции)
Я храню флаги, используя биты в 64-битном целом числе.
Я хочу знать, есть ли один бит установлен независимо от позиции в пределах 64-битного целого числа (то есть меня не волнует позиция какого-либо конкретного бита).
boolean isOneSingleBitSet (long integer64)
{
return ....;
}
Я мог посчитать количество бит, используяБит Тиддлинг Хаки (Шон Эрон Андерсон), но мне интересно, какой самый эффективный способ просто определить, установлен ли один бит ...
Я нашел несколько других связанных вопросов:
(8051) Проверьте, установлен ли один битОбнаружение одиночных однобитовых потоков внутри целого числаа также некоторые страницы Википедии:
Найти первыйБит манипуляцииВес ХэммингаNB: мое приложение на Java, но мне любопытно по поводу оптимизации с использованием других языков ...
РЕДАКТИРОВАТЬ: Lưты Vĩнх Phúc указал, что моя первая ссылка в моем вопросе уже получила ответ: см. разделОпределение, является ли целое число степенью 2 вБит Тиддлинг Хаки (Шон Эрон Андерсон). Я не поняла чтоодин бит был такой же каксила двух.