2016-10-25 1 views
1

동적 메서드를 사용하여 이진 및 숫자를 통해 숫자를 확인하려고합니다. 나는 다양한 접근법을 시도했지만 그저 내 머리를 감쌀 수는 없습니다.Java 정수 인덱스에서 비트 위치

정수 인덱스 위치를 변환하고 부울을 반환하는 메서드가 필요합니다. 예를 들어

private boolean bitwiseAnding(int val, int indx){ 
    //TODO Convert indx to a bitmask here 
    return (val & bitmask)==1; 
} 

:

1 = 0x01 
2 = 0x02 
3 = 0x04 
4 = 0x08 
and so on 
당신은 bit shifting 연산자를 사용할 필요가
+1

왼쪽의 1 번째 위치를 회전하는 것과 같지 않습니까? –

답변

4

:

private boolean bitwiseAnding(int val, int indx){ 
    int mask = 1 << (indx-1); 
    return (val & mask) != 0; 
} 
+1

이것은'indx == 31'에 대해 실패합니다. –

+0

의견을 보내 주셔서 감사합니다. –

4

그냥 이동 비트를 사용

int bitmask = 1 << (indx-1); 

을하지만주의를 당신은거야에 대해 사실이된다.인 경우다음과 같은 의미 일 수 있습니다.

(val & bitmask) != 0