-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
8분 Bit Flag질문
22.02.16 12:57 작성 조회수 236
0
0. Thread.CurrentThread.ManagedThreadId 가 1씩 늘어나는 그런 숫자라고 해주셨는데
이게 무슨말인지 모르겠습니다.
1. 쉬프트 연산자를 사용을 할때,
Thread.CurrentThread.ManagedThreadId << 3 을 하게되면
이런 의미인것인가요 아니면
3번째 칸만 켜주는
이런 의미가 되는 것인가요?
2.
만약 Thread.CurrentThread.ManagedThreadId << 3 라는 의미가 첫번째 질문의 원리와 같다면
이런상태라 가정하였을때
다시 Thread.CurrentThread.ManagedThreadId << 3를 하게되면
이런식으로 바뀌는 것인가요??
3. 현재
if (_flag == EMPTY_FLAG)일 경우 WriteThreadID은 15비트를 켜진상태 ( 1인 상태를) 가져오고 싶은것이 맞다면
Thread.CurrentThread.ManagedThreadId << 16
이렇게 밀어버리게 되면
이렇게 되는것이 맞나요?
3-1.
이렇게 되는 것이 맞다면
(Thread.CurrentThread.ManagedThreadId << 16
뒤에 & WRITE_MAKS; 이녀석은
Thread.CurrentThread.ManagedThreadId << 16 &&
Thread.CurrentThread.ManagedThreadId << WRITE_MASK 라는 뜻인가요??
3-2
Thread.CurrentThread.ManagedThreadId << 16 &&
Thread.CurrentThread.ManagedThreadId << WRITE_MASK 라는 뜻이 맞다면
Thread.CurrentThread.ManagedThreadId << 16 로
이렇게
한번 밀어주고
Thread.CurrentThread.ManagedThreadId << WRITE_MASK로
이렇게 밀어주게되면 Unused(1)이 나오게 되는것 아닌가요..??
4. 비트 마스크
ex) 1 << 5를 하면
1 << 10을 하게되면
이런 기초적인 것은 이해를 했는데
위에 질문드린 부분들이 이해가 안갑니다 ㅠ
제가 완전히 잘 이해를 이상하게 하고 있는거 같습니다..ㅠ
답변을 작성해보세요.
0
0
Rookiss
지식공유자2022.02.16
안녕하세요,
전체적으로 질문을 너무 가볍게 하시면 안 됩니다.
<<, & 같은 bitflag는 기본기에 해당하며
기억이 안나시면 구글링을 해보거나,
실제로 간단한 콘솔 프로그램을 만들어서 테스트를 해보고
숫자가 어떻게 변화하는지 살펴보시기 바랍니다.
답변 2