Sprawdź, czy w obrębie liczby całkowitej ustawiono tylko jeden bit (niezależnie od jego pozycji)
Przechowuję flagi przy użyciu bitów w 64-bitowej liczbie całkowitej.
Chcę wiedzieć, czy istnieje pojedynczy bit ustawiony niezależnie od pozycji w 64-bitowej liczbie całkowitej (e.i. Nie obchodzi mnie pozycja żadnego konkretnego bitu).
boolean isOneSingleBitSet (long integer64)
{
return ....;
}
Mogłem policzyć liczbę bitów za pomocąTrochę dziwacznych hacków (autor: Sean Eron Anderson), ale zastanawiam się, jaki jest najbardziej skuteczny sposób na wykrycie, czy ustawiony jest jeden bit ...
Znalazłem inne powiązane pytania:
(8051) Sprawdź, czy ustawiony jest pojedynczy bitWykrywanie pojedynczych strumieni jednobitowych w obrębie liczby całkowiteja także niektóre strony Wikipedii:
Znajdź pierwszyBitowa manipulacjaWaga HammingaNB: moja aplikacja jest w Javie, ale jestem ciekawa optymalizacji przy użyciu innych języków ...
EDYTOWAĆ: Lưu Vĩnh Phúc wskazał, że mój pierwszy link w moim pytaniu już otrzymał odpowiedź: patrz sekcjaUstalenie, czy liczba całkowita jest potęgą 2 wTrochę dziwacznych hacków (autorstwa Seana Erona Andersona). Nie zdawałem sobie z tego sprawyjeden bit był taki sam jakmoc dwóch.