마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

& 연산에대해서 조언부탁합니다

0 추천
int result = 0;
        byte b;

............

result = (int)(b & 0x7f);

위에서 b & 0x7f 이연산하는것에대해서

조언좀 구합니다

위의연산을 하면 결과가 어떻게변하는지도...
잡부 (5,110 포인트) 님이 2014년 5월 23일 질문

1개의 답변

+1 추천
 
채택된 답변
& 는 비트연산이라고 해요~

byte b 는 자료형이 바이트, 즉 8개의 비트가 모인 형태 >> 0000 0000 이구요.

0x7f 는 역시 16진수 표현으로 1바이트이구요, 비트로 표현 시 >> 0111 1111 가 되겠습니다.

앞4자리 0111이 7을 의미하고 뒤4자리 1111이 f 를 나타냅니다.

그래서 & 연산을 하게 되면

0000 0000

0111 1111  에서 각 자리가 둘다 1인 경우만 1로 한다. 이므로 값은 0이 되겠죠?

만약 byte b = 0x01; 을 넣어주면

0000 0001

0111 1111 이 되므로 연산 결과는 0000 0001 이 되어 result 값을 출력하면 1이 나오게 됩니다.
초보개발자ㅠ (33,870 포인트) 님이 2014년 5월 23일 답변
잡부님이 2014년 5월 23일 채택됨
...