if (5 & 2) : is False 이유를 이해하지 못함

최세환

이것은 제가 답을 찾을 수 없었던 매우 사소한 질문입니다.

여기에 문제가 있습니다.

#1

if 3 & 2:
    print('True')
else:
    print('False')
#1 result = True

# 2

if 5 & 2:
    print('True')
else:
    print('False')
#2 result = False

이유는 Bitwise 연산자라고 생각하지만이 상황을 이해하지 못합니다.

어떤 설명이라도 많이 주시면 감사하겠습니다.

지역

여기에는 두 가지 일이 있습니다.

  • 비트 연산 자체.

    • 의 출력은 &해당 비트가 두 피연산자 모두에서 1이고 다른 곳에서는 0 인 모든 비트에 대해 1을 갖는 숫자입니다. 이 경우 (이진) 5 & 2피연산자 101010, 따라서 이진 출력 000또는 decimal : 0이있는 반면 3 & 2, 피연산자 1110, 따라서 이진 출력 10또는 decimal :이 2있습니다.
  • if조건이 정수일 때 의 조치 :

    • 조건이 정수인 경우 값이 0이 아니면 true 값으로 처리되고 0은 false 값으로 처리됩니다. 따라서이 5 & 2경우 0false로 처리되어 else블록이 실행되는 반면, 3 & 2경우에는 2true로 처리되어 if블록이 실행됩니다.

이들을 합치고 2가 2의 정확한 거듭 제곱 (이 경우 2의 제곱 1)이라는 것을 상기하면, 이것이 본질적으로하는 일은 다른 숫자를 이진수로 쓰면 2의 숫자가 설정되었는지 테스트하는 것입니다 (예 : 1)과 같거나 아닙니다. 이 코딩 패턴은 일반적으로 비트 필드 를 나타내는 숫자가 있고 특정 비트가 설정되었는지 테스트하려는 경우에 사용됩니다. 예를 들어, 함수 flags인수 os.open(두 번째 인수)는 비트 필드입니다. 특정 관심 비트 flags가 해당 함수에 보낼 수 있는 값에 설정되어 있는지 테스트 할 수 있습니다 .

import os
print(os.O_RDWR)  # 2 - in binary 10
print(os.O_TRUNC)  # 512 - in binary 1000000000
flags = os.O_RDWR | os.O_TRUNC  # does bitwise OR to set the flags
print(flags)  # 514 - in binary this is 1000000010

if flags & os.O_RDWR:
    print("O_RDWR is set")  # this print is executed because the 2s digit is set

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

수학 결과를 이해하지 못함 1 + 2 * 3 * + 4 * 5 = 121

분류에서Dev

GDB Hanging-이유를 이해하지 못함

분류에서Dev

GDB Hanging-이유를 이해하지 못함

분류에서Dev

116 + 14 = -126 (CS50) 인 이유를 이해하지 못함

분류에서Dev

Foundation 5 모바일 해상도를 감지하지 못함

분류에서Dev

MVC5의 ReactJS.Net이 종속성을 해결하지 못함

분류에서Dev

Vuex를 이해하지 못함

분류에서Dev

오류 1119를 이해하지 못함

분류에서Dev

오류를 이해하지 못함

분류에서Dev

LINQ 쿼리를 이해하지 못함

분류에서Dev

F # : .. 일치를 이해하지 못함

분류에서Dev

Phpmyadmin이 MD5를 이해하지 못하는 이유는 무엇입니까?

분류에서Dev

ViewModelFactory와 함께 dagger2를 사용하는 mvvm, 기본 주입을 이해하지 못함

분류에서Dev

as3 hittestobject가 작동하지 않음, 이유를 이해하지 못함

분류에서Dev

V2DIP FTDI 보드의 키보드 값을 이해하지 못함

분류에서Dev

K & R의 연습 2-6 : 입력 / 출력을 이해하지 못함

분류에서Dev

Webstorm이 올바르게 해결하지만 Angular2가 구성 요소를로드하지 못함

분류에서Dev

정규 표현식 연습 시험이 이유를 이해하지 못함

분류에서Dev

루프가 멈추지 않는 이유를 이해하지 못함

분류에서Dev

이 잘못된 인수 오류를 이해하지 못함

분류에서Dev

false를 반환 한 이유를 자세히 설명하기 위해 메시지와 함께 함수에서 true / false를 반환합니다.

분류에서Dev

가치 오류가 발생하고 이유를 이해하지 못함

분류에서Dev

권한 거부 오류가 발생하는 이유를 이해하지 못함

분류에서Dev

Symfony2 구성 구성 요소, YAML이 PHP 매직 상수를 이해하지 못함

분류에서Dev

Webpack 5 : sass가 이미지 경로를 찾지 못함

분류에서Dev

Python이 사용자 지정 PyQt5를 찾지 못함

분류에서Dev

Laravel 5가 연락처 페이지를 보지 못함

분류에서Dev

Guzzle이 shopware5로 인증하지 못함

분류에서Dev

ATtiny85 디지털 "on"출력이 5V를 제공하지 못함

Related 관련 기사

  1. 1

    수학 결과를 이해하지 못함 1 + 2 * 3 * + 4 * 5 = 121

  2. 2

    GDB Hanging-이유를 이해하지 못함

  3. 3

    GDB Hanging-이유를 이해하지 못함

  4. 4

    116 + 14 = -126 (CS50) 인 이유를 이해하지 못함

  5. 5

    Foundation 5 모바일 해상도를 감지하지 못함

  6. 6

    MVC5의 ReactJS.Net이 종속성을 해결하지 못함

  7. 7

    Vuex를 이해하지 못함

  8. 8

    오류 1119를 이해하지 못함

  9. 9

    오류를 이해하지 못함

  10. 10

    LINQ 쿼리를 이해하지 못함

  11. 11

    F # : .. 일치를 이해하지 못함

  12. 12

    Phpmyadmin이 MD5를 이해하지 못하는 이유는 무엇입니까?

  13. 13

    ViewModelFactory와 함께 dagger2를 사용하는 mvvm, 기본 주입을 이해하지 못함

  14. 14

    as3 hittestobject가 작동하지 않음, 이유를 이해하지 못함

  15. 15

    V2DIP FTDI 보드의 키보드 값을 이해하지 못함

  16. 16

    K & R의 연습 2-6 : 입력 / 출력을 이해하지 못함

  17. 17

    Webstorm이 올바르게 해결하지만 Angular2가 구성 요소를로드하지 못함

  18. 18

    정규 표현식 연습 시험이 이유를 이해하지 못함

  19. 19

    루프가 멈추지 않는 이유를 이해하지 못함

  20. 20

    이 잘못된 인수 오류를 이해하지 못함

  21. 21

    false를 반환 한 이유를 자세히 설명하기 위해 메시지와 함께 함수에서 true / false를 반환합니다.

  22. 22

    가치 오류가 발생하고 이유를 이해하지 못함

  23. 23

    권한 거부 오류가 발생하는 이유를 이해하지 못함

  24. 24

    Symfony2 구성 구성 요소, YAML이 PHP 매직 상수를 이해하지 못함

  25. 25

    Webpack 5 : sass가 이미지 경로를 찾지 못함

  26. 26

    Python이 사용자 지정 PyQt5를 찾지 못함

  27. 27

    Laravel 5가 연락처 페이지를 보지 못함

  28. 28

    Guzzle이 shopware5로 인증하지 못함

  29. 29

    ATtiny85 디지털 "on"출력이 5V를 제공하지 못함

뜨겁다태그

보관