2012-07-17 2 views

답변

4

이 결과는 본질적 (NUM의 포지티브 값) 모듈 (NUM 1024)와 같은 일이 항상 0 내지 1023이되도록 숫자의 상단 비트를 제로로.

넓은 의미의 문맥을 보지 않고도 은 여기에 있습니다. 이유는입니다.하지만 그 이유는 무엇입니까.

+0

도움을 주셔서 감사합니다. – user1467855

4

0x3FF은 이진수로 숫자 1111111111입니다. 즉, 비트 값 AND는 num의 마지막 10 비트를 제공합니다.

+0

도움을 주셔서 감사합니다! – user1467855

1

16 진수를 2 진수로 변환하면 0x3FF == 0b1111111111입니다.

&은 비트 단위 AND를 수행하므로 켜기로 설정된 경우에만 낮은 비트를 유지합니다.
이렇게하면 대답은 0x3FF == 1023보다 크지 않으므로 답변은 short에 저장됩니다.

+0

도움을 주셔서 감사합니다! – user1467855

0

가장 오른쪽에있는 10 비트 만 유지합니다.

0

자바 연산자 &1 모두 경우 해당 비트 1이다 떠나는 AND로 된 두 개의 피연산자의 각각의 비트를 의미하는 "비트 AND"이다.

0x3ff은 이진수 인 1111111111이므로 ANDing을 사용하면 가장 낮은 10 비트를 제외한 모든 비트가 마스킹됩니다.

short (16 비트 숫자 형식)으로 캐스트하면 아무 효과가 없습니다.