이것은 bitwise math을 사용하여 수행됩니다. 특히 그들은 &
(비트 및) 연산을 사용하여 값이 설정되어 있는지 확인합니다. 여기서 논의하기 위해 우리는 4 비트 숫자를 사용하여 짧고 단순하게 유지합니다.
다음 숫자 7은, 4 비트 바이너리이다 :
0111
각 숫자마다 두 배가되는 값을 갖고, 그들 모두가 7의 총 개수를 만들기 위해 함께 가산된다 . 세분화, 그것과 같이 작동합니다
0 1 1 1
^ ^^^
| | | |
8 4 2 1
그래서, 본질적으로, 그것이 :
0 * 8 + 1 * 4 + 1 * 2 + 1 * 1 = 7
이제, 비트와 함께 현명한 수학, 특히 bitwise 그리고 우리는 특정 열의 비트에 대해서만 신경을 쓸 수 있습니다 - 기본적으로 각 열의 비트는 1이어야합니다. 그렇지 않으면 0으로 설정됩니다. 그래서, '4'내부 검사 '7'비트 수학으로 :
0111 (7)
& 0100 (4)
______
0100 (4)
을이 값이 0이기 때문에, 사실, 우리는 값 4 지금 고려 값 (7) 내부에 있음을 확인할 수 있습니다 수 11 :은 0의 값을 가지고 있기 때문에
1 0 1 1
^ ^^^
| | | |
8 4 2 1
1 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 11
그
1011 (11)
& 0100 (4)
______
0000 (0)
4 찾아보십시오, 그것은 거짓이며, 우리는 수 (4)가 내부 아니라는 것을 고려할 수 넘버 11.
마찬가지로 숫자 4, 2 및 1은 8이지만 7은 8이라는 결론을 내릴 수 있습니다. 11에서는 8, 2 및 1이 있습니다. 숫자를 단항 하나의 정수 안에 많은 플래그를 저장할 수 있습니다.
정확하게 비트 연산에 대해 더 자세히 읽으십시오. 정확하게 사용하면 매우 유용 할 수 있습니다. 모든 것을 구두로하려고하지 마십시오.
저는 비트 워킹 운영자가 무엇인지, 각각 어떻게 작동하는지 독자적으로 조사해야한다고 생각합니다. –
오, 정말 고마워, 정말로 내가 무슨 구글을 위해 단서를 가지고 있지 않았다 :) – Adrian
내가 그것을 찾은 후에, 너는 무엇을 알고있다, 그것은 거의 즉시 감각을 가지고 있었다. :)) thanks! – Adrian