2013-04-24 2 views
0

누구나이 작동 방법을 보여줄 수 있습니까? 인덱스는 숫자이며 0에서 128까지의 숫자가 될 수 있습니다. 나는 (인덱스 & 0x88) 어떻게 0인지 아닌지 이해할 수 없습니다.if (index & 0x88) == 0, 어떻게 작동합니까?

도움이 될 것입니다.

+2

0x88은 2 진수로 쓰면 0b10001000입니다. 따라서 인덱스의 8 번째와 4 번째 비트가 모두 0 일 때 'index & 0x88'은 정확하게 0입니다. 일반적으로이 유형의 조건은 비트 기반 플래그를 테스트 할 때 사용됩니다 (이 경우에는 8 번째 및 4 번째 플래그가 설정되지 않음) – dlev

+4

참조 http://stackoverflow.com/questions/1746613/bitwise-operation-and-usage/1746642#1746642 – paxdiablo

답변

2

& 연산자는 비트 AND이고, 0x88의 2 진수와 인덱스의 해당 부분이 모두 1이면 == 0이됩니다. 반대의 경우 숫자가 모두 1이 아니면 &의 결과가이 경우 0

될 것입니다, 당신의 16 진수 (88)는 인덱스가 (예를 들어 4 번째와 8 번째 위치의 0이만큼을 0으로 동일 할 수 바이너리 10001000, 그래서 (인덱스 & 10001000)입니다 , 01110111)

0

&bitwise and 연산자입니다 (숫자에 적용 할 경우). 예를 들어

, 110 & 101 = 100

0x88는 이진 10001000이다.

3

0x88은 2 진수로 10001000과 동일합니다. 따라서 인덱스의 이진 값이 0xxx0xxx 인 경우 0이됩니다. 여기서 x은 2 진수입니다.

관련 문제