인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

공부하자님의 프로필 이미지
공부하자

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

환경 설정

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

작성

·

605

0

안녕하세요 강사님!

강의 잘 듣고 있습니다.

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

int currentTick = Environment.TickCount & Int32.MaxValue;

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

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

코드 이해를 못해서요.

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

답변 부탁드립니다.

 

 

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

image

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

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

공부하자님의 프로필 이미지
공부하자
질문자

답변 감사합니다~!

공부하자님의 프로필 이미지
공부하자

작성한 질문수

질문하기