개발/Java
1의 개수가 하나 이상인지 여부를 체크하는 비트연산
haloper
2016. 2. 22. 10:06
비트연산을 처리하는 중에 1의 개수가 하나인지 여부를 확인해야 할 경우가 있었습니다.
비트 수 만큼 루프를 돌면서 카운트를 하는 방법도 있겠지만,
왠지 간단한 연산만으로 처리가 가능할 것 같았고,
고민 끝에 아래 와 같은 방법으로 처리가 가능하다는걸 알게 되었습니다.
public boolean isOneBitEnable(int value) { return (Math.log(value) / Math.log(2)) != (int)(Math.log(value) / Math.log(2)); }