AND 연산&
예:
3&5
해결책: 3의 2의 보수는 11이고, 5의 2의 보수는 101, 3&5는 011&101, 먼저 백의 자리를 살펴보겠습니다. (실제로는 백의 자리가 아닙니다. 이해를 돕기 위한 것입니다.) 0과 1이 있습니다. (1&1=1, 1&0=0, 0&0=0, 0&1) =0), 백의 자리는 1이어야 하고, 십의 자리도 마찬가지라는 것을 알 수 있습니다. 숫자 1&0=0, 일의 자리 숫자 1&1=1이므로 최종 결과는 1이 됩니다. 한 단계 더 나아가서, 지금 우리가 얻는 값은 우리가 찾고 있는 답의 보수일 뿐이므로, 보수는 그 자체이므로 생략할 수 없다. 예)
-1&-2
해결책: -1의 보수는 11111111이고, -2의 보수는 11111111입니다. 코드는 11111110, 11111111&11111110입니다. 이것이 보수 코드입니다. . 그러면 원래 코드는 100000010으로 변환됩니다(음수를 원래 코드로 변환하는 방법은 1을 빼고 이를 부정하는 것입니다).
-2&6
해결 방법: - 2의 보수는 11111110, 6의 보수는 110, 11111110&110, 즉 11111110&00000110입니다(초보자가 비트 연산을 더 잘 이해할 수 있도록 작성하는 목적). 위의 방법을 따르면 결과는 110, 십진수로 변환하면 6입니다.
팁: 비트 AND를 사용하여 이진수의 마지막 숫자를 0(X&0)으로 변경합니다.
예:
a = 5 b = 3 print a & b
결과: 1
이것은 어떻게 계산되나요? 실제로는 a와 b의 이진법을 통해 계산됩니다.
# a 的 b 的二进制 # 0*2**3 + 1*2**2 + 0*2**1 + 1*2**0 # 开始与运算 a = 0101 b = 0011
결과: 0001
AND 연산은 a와 b의 이진수를 비교하여 숫자가 모두 1이면 계산됩니다. 1로. 동의하지 않으려는 경우 또는 둘 다 0인 경우 0으로 계산됩니다. 그런 다음 답을 이진수에서 십진수로 변환하십시오.
OR 연산|
예:
4|7
해결책: 비트 합집합의 계산 규칙은 비트 AND의 계산 규칙과 매우 유사하지만 논리는 다음과 같습니다. 연산자를 변경하면 합집합 규칙은 1|1=1,1|0=1, 0|0=0입니다. 4|7을 이진수로 변환하면 100|111=111입니다.
팁: 비트 단위를 사용하여 이진수의 마지막 숫자를 1(X|1)로 변경합니다.
예:
a = 5 b = 3 print a | b
결과: print 7
a = 0101 b = 0011
a | b 결과는 다음과 같습니다. 0111
OR 연산은 AND 연산과 정반대입니다. 비트 숫자가 0이 아니면 1로 계산되고, 그렇지 않으면 0으로 계산됩니다.
배타적 OR 연산
방법: 비트 추가, 전달되지 않도록 특별히 주의해야 합니다. 해결 방법: 10^101=111입니다. 7.
1^1
해결 방법: 1+1=0(원래는 1+1=10이지만 올림이 허용되지 않아 결과는 0)
-3^4
해결책: -3의 보수는 11111101, 4의 보수는 100(즉, 00000100), 11111101^00000100=11111101, 11111101의 보수를 원본 코드로 변환하면 1000111, 즉 십진수로 -7이 됩니다.
a = 5 b = 3 print a ^ b
a = 0101 b = 0011
a ^ b 결과 0110입니다
XOR 연산의 자릿수가 같지 않으면 1로 계산되고, 그렇지 않으면 0으로 계산됩니다.
왼쪽 쉬프트 및 오른쪽 쉬프트
방법: X<
3<<2해결 방법: 11은 왼쪽으로 두 칸 이동하여 1100이 되며, 12가 됩니다.
2. 연산 기호 >>
방법: X>>N 숫자에 해당하는 이진수를 이동합니다. :11은 오른쪽으로 두 자리 이동하여 0이 됩니다.10>>1
해결 방법: 10의 이진수는 1010이고 오른쪽으로 한 칸 이동하면 101, 즉 5가 됩니다.
a = 5 b = 2 print a << b
a = 0101 b = 2
a << b 결과: 10100
Python의 십진수 비트 연산 및 계산 요약과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!