-
[Python] print(a and b) 와 print(a & b) 차이언어/Python 2024. 4. 16. 16:23
상황 설명
해당 문제 : https://codeup.kr/problem.php?id=6060
[기초-비트단위논리연산] 비트단위로 AND 하여 출력하기(설명)(py)
python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용
codeup.kr
해당 문제를
a,b = map(int,input().split()) # 사용자로부터 a,b 값을 입력 받음 print(a and b) # a and b 출력
여기서 a =3, b =5 라고 가정한다면
출력값이 5가 나오는 겁니다.
제가 원하는 값은 1인데
문제를 먼저 보고 오세요 ~
이 두 코드 모두 사용자로부터 입력받은 두 정수에 대해 논리 연산을 수행합니다. 하지만 and와 & 연산자는 다른 결과를 반환합니다.
- print(a and b):
- and 연산자는 두 값이 모두 참일 때만 참을 반환합니다.
- 따라서 입력된 두 정수가 모두 0이 아니면(True일 때), and 연산자는 두 정수 중 더 큰 값을 반환합니다. 하나라도 0이면(False일 때), 0을 반환합니다.
- print(a & b):
- & 비트 연산자는 두 값의 각 비트를 비교하여 두 비트가 1일 때만 1을 반환합니다.
예를 들어, 3과 5를 입력으로 받았을 때,
- print(a and b)는 두 정수가 모두 0이 아니므로 둘 중 큰 값을 반환하는데, 5가 반환됩니다.
- print(a & b)는 3과 5의 각 비트를 비교하여 해당 비트가 모두 1인 경우에만 1을 반환합니다.
(3은 0011이고, 5는 0101이므로, 이 둘의 & 연산을 한다면) -
0011 & 0101 ------ 0001
따라서 결과 값 1이 됩니다.
++여기서 부터는 본문과 관련없는 내용입니다.- 산술 연산자 (Arithmetic Operators):
- 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/): 숫자들 간의 산술적 연산을 수행합니다.
- 나눗셈 연산자 (/): 정수 나누기를 하더라도 결과를 실수형으로 반환합니다.
- 몫 연산자(//): 나눗셈의 몫을 반환합니다.
- 나머지 연산자(%): 나눗셈의 나머지를 반환합니다.
- 비교 연산자 (Comparison Operators):
- 같음(==), 같지 않음(!=): 두 값이 같은지 여부를 비교합니다.
- 크다(>), 작다(<), 크거나 같다(>=), 작거나 같다(<=): 두 값의 상대적 크기를 비교합니다.
- 논리 연산자 (Logical Operators):
- and: 두 조건이 모두 참일 때 참을 반환합니다.
- or: 두 조건 중 하나 이상이 참일 때 참을 반환합니다.
- not: 조건의 반대를 반환합니다.
- 할당 연산자 (Assignment Operators):
- 등호(=): 변수에 값을 할당합니다.
- 복합 할당 연산자(+=, -=, *=, /=, //=, %=): 현재 변수 값에 다른 값을 연산하여 결과를 다시 변수에 할당합니다.
- 비트 연산자 (Bitwise Operators):
- 비트 AND(&), OR(|), XOR(^), NOT(~): 비트 단위로 연산을 수행합니다.
- 왼쪽 시프트(<<), 오른쪽 시프트(>>): 비트를 왼쪽 또는 오른쪽으로 이동시킵니다.
- 멤버십 연산자 (Membership Operators):
- in: 값이 시퀀스에 있는지 확인합니다.
- not in: 값이 시퀀스에 없는지 확인합니다.
- 식별 연산자 (Identity Operators):
- is: 두 객체가 동일한 객체인지 확인합니다.
- is not: 두 객체가 서로 다른 객체인지 확인합니다.
'언어 > Python' 카테고리의 다른 글
왜 Python에서 `str`타입이 append 메소드를 지원하지 않을까? (0) 2024.05.28 [Python] 당신의 for문에서 map()이 안되는 이유 (0) 2024.04.22 [Python] List Comprehensions이란? (0) 2024.04.22 [Python] 유니코드란? & 활용한 문제 예시(feat.CodeUp : 6,069 평가 입력 받아 다르게 출력하기(py)) (0) 2024.04.17 [Python] int(input().split()) 가 안되는 이유 (0) 2024.04.16 - print(a and b):