• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Environment.TickCount & Int32.MaxValue; 코드 질문

23.03.16 00:21 작성 조회수 480

0

안녕하세요 강사님!

강의 잘 듣고 있습니다.

질문 게시판 글도 간단히 보면서 강의를 보고 있는데요.

int currentTick = Environment.TickCount & Int32.MaxValue;

위의 코드를 답변으로 주신 내용이 있던데

c#강의에 다시 가서 &비트 연산을 봐도

코드 이해를 못해서요.

부호가 제거된다는 것 같은데 왜 부호가 없어지고 코드가 정상으로 돌아가는지 잘 모르겠습니다.

답변 부탁드립니다.

 

 

답변 1

답변을 작성해보세요.

0

image

int maxValue란 최상위 비트가 0이고 나머지가 1인 32비트 정수 숫자입니다.
image
최상위 비트는 음수를 담당하기 때문에, 위와 같이 1인 경우 -2147.. 음수인 것을 볼 수 있습니다.

그래서 int32 maxvalue를 & 로 비트 연산을 해주면, 0b011111111111...1111 과 &를 하기 때문에
양수만 남게 됩니다.

답변 감사합니다~!