python - 按位“与”、“或”、“异或”运算的使用场景有什么?
阿神
阿神 2017-04-17 18:00:22
0
5
954

按位“与”、“或”、“异或”运算的使用场景有什么?

阿神
阿神

闭关修行中......

모든 응답(5)
阿神

XOR 연산은 암호화의 핵심 연산 중 하나입니다.

많은 대칭 암호화는 XOR 연산을 기반으로 합니다.

巴扎黑

모두 이진 연산자이며 어셈블리 개념이므로 일반적으로 사용되지 않습니다.
하지만 상대적으로 낮은 레벨의 오퍼레이터이기 때문에 작업 속도가 매우 빠르고, 일반 오퍼레이션에서도 사용할 수 있습니다.
예:
및 연산자는 일반적으로 지우는 데 사용됩니다.
AND 연산자를 사용하여 정수를 짧은 정수로 변환할 수 있습니다(실제로는 dword를 단어로 변환).

으아악

Or 연산은 일반적으로 보완 코드에 사용됩니다.
예를 들어 정수형은 4바이트, 32비트이므로 32비트를 수용할 수 있도록 구성할 수 있다는 의미입니다. (TRUE/FALSE) 이때 를 사용하여 특정 위치를 1로 설정할 수 있습니다.

암호화에는 일반적으로 배타적 OR을 사용합니다.
그 밖에도 곱셈은 왼쪽 쉬프트, 나눗셈은 오른쪽 쉬프트 등 특이한 기능도 있습니다.

이 분야에는 지식 포인트가 너무 많아 일반적으로 특별히 공부할 필요가 없습니다. 바이너리에 대해 더 많이 알면 이해할 수 있을 것입니다. 솔직히 말해서 꽤 어렵습니다.
오랜 시간 동안 썼는데 아마 이해하는 사람이 많지 않았을 것 같아요. .

PHPzhong

비트 연산은 임베디드 및 드라이버 프로그래밍에서 더 많이 사용됩니다. 레지스터를 직접 연산할 때는 많이 사용되지 않는 것 같습니다.
하지만 사용할 수 있는 이상한 기술이 많이 있다는 인상을 받았습니다. 가장 인상 깊었던 것은 leetcode에 대한 질문입니다:
LeetCode 136. Single Number

질문은 매우 간단합니다. 배열에 한 번 나타나는 유일한 정수를 찾고 나머지는 두 번 나타나는 것입니다.

일반적인 아이디어는 테이블을 사용하는 것이지만 배열이 큰 경우 속도가 매우 느리고 비트 XOR 알고리즘이 있습니다.
배열의 모든 숫자를 비트 단위로 직접 XOR하면 나머지 숫자가 원하는 이유를 알 수 있습니다.

黄舟

실제 시나리오의 예
바이트의 특정 비트 값을 구성합니다.
예:
이 변수의 특정 비트를 설정하려면 비트별 OR a = a|0x01을 사용하여 마지막 비트를 추출하면 비트별 AND b = a&0x01을 사용할 수 있습니다. 마지막 비트를 추출하는 값입니다.

小葫芦
  • 비트마스크, 비트맵 등

  • 바이너리 형식 처리(예: TCP 헤더)

  • 암호화

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿