손가락의 비트 연산 🙌👩🏻‍💻

저는 2017년 Advent of Code 챌린지의 일환으로 비트 연산을 처음 접했습니다. 저는 완전히 혼란스러웠습니다. "어떻게 두 숫자에 대해 AND를 할 수 있나요? 말도 안 돼요!"나는 챌린지(아마도 Go)에 어떤 언어를 사용하든 AND 연산자를 충실히 사용했고 그것이 의미하는 바를 모른 채 받아들였습니다.

다음 만남은 작업장 토론 그룹에서 AND 연산자를 사용하여 filter packets, using tcpdump 에 대해 배웠습니다. 이러한 비트 연산에서 실제로 어떤 일이 벌어지고 있는지 이해하기 위해 충분한 질문을 했고, 이 기사에서 생각해낸 방법 중 하나를 공유하고 싶습니다. 이진수로 손가락을 세고 손을 사용하여 비트 산술을 수행하는 작업이 포함됩니다. 컴퓨터가 필요하지 않습니다. 다른 사람이 이렇게 했는지는 모르겠지만 도움이 되는 것 같습니다.

배경



귀하가 사용하는 모든 컴퓨터 시스템은 정보를 일련의 0과 1로 나타내며, 밑수 2 또는 binary을 사용하여 숫자를 나타냅니다. 비트 연산자는 각 비트에 대해 Boolean operation을 수행하여 최종 결과에 도달합니다.

예를 들어, 6 AND 3을 찾고 싶다고 합시다.

0110 (6) 
0011 (3)
----
0010 (2)


이것을 세분화:

In the 2^0 (1's) place, the first value is 0 (false) and the second value is 1 (true). false AND true = false.

In the 2^1 (2's) place, the first value is 1 (true) and the second value is 1 (true). true AND true = true.

In the 2^2 (4's) place, the first value is 1 (true) and the second value is 0 (false). true AND false = false.

In the 2^3 (8's) place, the first value is 0 (false) and the second value is 0 (false). false AND false = false.



요약: 각 위치 또는 열에 대해 해당 열의 입력 값에 대해 부울 논리 연산을 수행하여 해당 열에 대한 출력을 가져옵니다.

다른 비트 연산을 수행하기 위해 동일한 프로세스를 사용합니다.

OR(두 값 중 하나가 참이면 참):

0110 (6) 
0011 (3) 
----
0111 (7) 


XOR(두 값이 다른 경우 참):

0110 (6) 
0011 (3) 
----
0101 (5) 


NOT은 단항 연산자입니다. 즉, 하나의 입력만 받고 각 열(또는 비트)의 값을 반대로 바꿉니다.

0101 (5) 
----
1010 (10)


this calculator 을 사용하여 비트 연산을 할 수 있습니다.

손가락 방법



이진수로 손가락 세기를 배우는 것부터 시작하겠습니다.

일부 손가락 계산 시스템은 엄지손가락부터 시작하지만 검지 손가락을 사용하여 1을 표시할 것입니다. 각 손이 nibble 또는 반바이트를 나타내기 때문입니다. (또한 사용하지 않는 손가락을 엄지로 잡을 수 있다는 의미이기도 합니다.) 중지는 2, 약지는 4, 새끼손가락은 8입니다.

1 또는 0001:

hexadecimal

2 또는 0010:



3 또는 0011 또는 2^1 + 2^0:



7, 또는 0111, 또는 2^2 + 2^1 + 2^0:



12, 1100, 2^3 + 2^2 또는 16진수 C:



15, 1111, 2^3 + 2^2 + 2^1 + 2^0 또는 16진수 F:



그리고



AND 연산의 경우 왼손을 사용하여 첫 번째 숫자를 만들고 오른손을 사용하여 두 번째 숫자를 만듭니다. 각 손에 대해 검지는 항상 1, 새끼손가락은 8을 나타내야 합니다.

왼쪽에 6개, 오른쪽에 3개가 있습니다.



이제 두 손을 잡고 손바닥을 맞대고 손가락을 펼친 상태에서 함께 놓으십시오.

상단에 닿는 손가락은 답(2)을 나타냅니다.



더 많은 예:

12와 7 = 4





10과 5 = 0





또는



OR 연산자와 함께 동일한 입력을 사용합시다.

왼쪽에 6개, 오른쪽에 3개가 있습니다.



이제 두 손을 잡고 손바닥을 맞대고 손가락을 펼친 상태에서 함께 놓으십시오.

적어도 한 손가락이 올라간 곳이 정답(7)을 나타냅니다.



더 많은 예:

12 또는 7 = 15





10 또는 5 = 15





8 또는 1 = 9





XOR



왼쪽에 6개, 오른쪽에 3개가 있습니다.



이제 두 손을 잡고 손바닥을 맞대고 손가락을 펼친 상태에서 함께 놓으십시오.

정확히 한 손가락이 올라간 곳이 정답(5)을 나타냅니다.



더 많은 예:

12 XOR 7 = 11





10 XOR 5 = 15





아니다



위로 올라간 모든 손가락을 내려 놓으십시오. 내려 놓은 모든 손가락을 올려 놓습니다.

5가 아님 = 10





결론



이제 손가락으로 비트 연산자를 수행하는 방법을 알았습니다! 이 작업이 보다 직관적인 방식으로 이러한 작업을 이해하는 데 도움이 되기를 바랍니다.

좋은 웹페이지 즐겨찾기