> 백엔드 개발 > 파이썬 튜토리얼 > Python의 10진수 비트 연산 및 계산 요약

Python의 10진수 비트 연산 및 계산 요약

高洛峰
풀어 주다: 2017-03-01 14:14:25
원래의
1357명이 탐색했습니다.

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
로그인 후 복사

결과: 6


a = 0101
b = 0011
로그인 후 복사
로그인 후 복사

a ^ b 결과 0110입니다

XOR 연산의 자릿수가 같지 않으면 1로 계산되고, 그렇지 않으면 0으로 계산됩니다.


왼쪽 쉬프트 및 오른쪽 쉬프트

1. 왼쪽 쉬프트 연산자

방법: X<예:
3<<2
해결 방법: 11은 왼쪽으로 두 칸 이동하여 1100이 되며, 12가 됩니다.


2. 연산 기호 >>

방법: X>>N 숫자에 해당하는 이진수를 이동합니다. :11은 오른쪽으로 두 자리 이동하여 0이 됩니다.10>>1
해결 방법: 10의 이진수는 1010이고 오른쪽으로 한 칸 이동하면 101, 즉 5가 됩니다.



a = 5
b = 2

print a << b
로그인 후 복사



결과는 20입니다.

a = 0101
b = 2
로그인 후 복사


a << b 결과: 10100

비트 이동 작업은 이진수를 왼쪽 또는 오른쪽으로 이동합니다. 위에 표시된 것처럼 왼쪽으로 2단위 이동합니다.

Python의 십진수 비트 연산 및 계산 요약과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿