> 백엔드 개발 > 파이썬 튜토리얼 > 파이썬에서 부정 연산자를 사용하는 방법

파이썬에서 부정 연산자를 사용하는 방법

WBOY
풀어 주다: 2023-04-30 08:22:14
앞으로
3292명이 탐색했습니다.

    Python 부정 연산자

    ~: 비트 부정 연산자: 데이터의 각 이진 비트를 부정합니다. 즉, 1을 0으로, 0을 1로 변경합니다.

    ~x는 -x-1

    1과 유사합니다. 계산 기준은

    • ①양수의 원래 코드, 보수 및 보수는 동일합니다.

    • ②음수의 부호 비트는 변경되지 않고 그대로 유지됩니다. 나머지 비트를 추가하고 1

    • 을 추가합니다. ③보완을 찾는 원본 코드: Invert,+1

    • ④원래 코드를 찾는 보완: Invert,+1

    • ⑤음수는 보수에 저장됨

    • ⑥ 원본 코드에서 반전 연산이 수행됩니다.

    • 7 부호 비트, 1은 음수, 0은 양수를 나타냅니다.

    2 예시

    ~ (-2)

    우선 컴퓨터에서 ⑤와 ②의 -2의 이진 형식을 알아야 합니다.

    • -2 원래 코드: 1000 0000 0000 0010

    • -2 음수 코드: 1111 1111 1111 1101 #부호 비트가 남아 있습니다. 변함없이 여러분 Negation

    • -2 보수: 1111 1111 1111 1110 #보완 코드 = 보수 코드 + 1

    1111 1111 1111 1110은 컴퓨터에 있는 -2의 원형입니다

    이제 부정을 시작해 보세요. bit Unchanged,

    는 비트 단위로 반전되었습니다. 0000 0000 0000 0001

    은 분명히 양수이고 원래 코드는 그 자체이므로 출력은 1.

    ~2

    2 원래 코드, 반전된 코드, 보수입니다. 코드: 0000 0000 0000 0010

    비트 부정: 1111 1111 1111 1101

    음수이면 어떻게 해야 하나요? 직접 물어봐도 될까요?

    분명히 이것은 불가능합니다. ⑥은 역연산 계산 결과가 원본 코드에서 수행된다고 말했습니다. ⑤ 또한: 음수가 보수 코드에 저장됩니다.

    1111 1111 1111 1101은 0000 0000 0000 0010의 보수 코드입니다. 하지만 우리가 원하는 것은 결과이지 컴퓨터의 프로토타입이 아닙니다.

    딱 맞습니다. ④ 원본 코드를 찾기 위한 보완: 부정, +1

    • 부정: 1000 0000 0000 0010

    • 더하기 1: 1000 0000 0000 0011

    그래서 원본 코드를 얻었고 결과를 계산할 수 있습니다

    1000 0000 0000 0011 = -3

    즉, 반전은 매우 간단하지만 반전이 원본 코드에서 결과를 직접 계산할 수 있나요? Python 수치 반전 문제 ~

    Python에서는 반전 기호를 사용하면 우리가 상상한 결과가 나오지 않습니다. 반전 전 값) -1

    분석해 보겠습니다

    예를 들어 1을 반전하면 1의 8비트 이진수 표현은 0000 0001이고, 반전 후의 결과는 1111 1110입니다. 컴퓨터의 경우 이진수 숫자 1로 시작하는 것은 음수를 나타냅니다. 그렇다면 1111 1110은 정확히 무엇을 의미합니까? 이 값을 알고 싶다면 해당 보수를 찾을 수 있습니다. 즉, 먼저 보수인 0000 0001을 취한 다음 1111을 나타내는 1: 0000 0010을 추가합니다. 1110의 원래 코드는 0000 0010, 즉 양수 2이므로 1111 1110은 음수 -2를 나타냅니다.

    또 다른 예를 들어

    -2를 반전하려면 -2의 이진수 표현은 2의 보수입니다. 0000 0010 > 1111 1101 > 1111 1110 이고 -2의 이진 표현은 1111 1110입니다. 이를 반전하여 0000 0001을 얻습니다. 분명히 반전된 값은 1이므로 ~(-2) = 1, ~1= -2

    요약은 다음과 같습니다: (부정 후 값) = - (부정 전 값)-1

    위 내용은 파이썬에서 부정 연산자를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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