작성
·
605
0
안녕하세요 강사님!
강의 잘 듣고 있습니다.
질문 게시판 글도 간단히 보면서 강의를 보고 있는데요.
int currentTick = Environment.TickCount & Int32.MaxValue;
위의 코드를 답변으로 주신 내용이 있던데
c#강의에 다시 가서 &비트 연산을 봐도
코드 이해를 못해서요.
부호가 제거된다는 것 같은데 왜 부호가 없어지고 코드가 정상으로 돌아가는지 잘 모르겠습니다.
답변 부탁드립니다.
답변 1
0
int maxValue란 최상위 비트가 0이고 나머지가 1인 32비트 정수 숫자입니다.
최상위 비트는 음수를 담당하기 때문에, 위와 같이 1인 경우 -2147.. 음수인 것을 볼 수 있습니다.
그래서 int32 maxvalue를 & 로 비트 연산을 해주면, 0b011111111111...1111 과 &를 하기 때문에
양수만 남게 됩니다.
답변 감사합니다~!