Q)특정 자리의 비트값을 알고자 할때......

cs010101의 이미지

원격에서 32비트를 보냅니다.

즉, 01011100 01001001 00011011 11001111

이런식으로 보내는데요.

맨 앞(01011100)부분의 3번째 비트(0)가 0인지 1인지 확인하고 싶습니다.
어떻게 하면 되나요?

antaran의 이미지

01011100 01001001 00011011 11001111

00100000 00000000 00000000 00000000

을 만들어서 AND연산하면

해당 비트가 1일 경우 non-zero

해당 비트가 0일 경우 zero

이렇게 나올 듯.

cs010101의 이미지

그것을 수식으로하면,

00000000 00000000 00000000 00000001의 값을, 알고자 하는 n번째까지 이동시킨후,
해당 값이 0 인지 1인지만 보면 되는거 같네요.

1을 (n-1)만큼 이동하고,
원래 있던 32비트 와 and 연산하고,
이것이 1:0 인지 보면 되겠네요.

1<<(n-1) & (32비트) 이게 0이면 0이고, 이게 1이면 1이고.

맞나요? -.-;; 비트연산을 잘 사용안하다가 할려니 좀 헷갈리네요.

-----------------------------------------------
어머니,
그 이름만으로도 우리는 풍요로와 집니다.

효도합시다......
-----------------------------------------------