티스토리 뷰

2. 관계, 논리, 비트 연산자

값을 비교하는 연산

관계 연산자

>>> a,b=3,2
>>> print(a==b)
False

a=3, b=2로 동등연산의 값 False를 출력

>>> print(a!=b)
True

a=3, b=2로 비동등연산의 값 True를 출력

 

비교연산의 결과

>>> print(a>b)
True
>>> print(a<b)
False
>>> print(a>=b)
True
>>> print(a<=b)
False
>>> a=10
>>> 8<a<10
False
>>> 8<a<=10
True

논리 연산자

 

선택의 문제에서 특정 조건을 만족하는지를 검사하기 위한 조건식을 만들 때 사용

 

 and의 특징

>>> a=10
>>> a>7 and a<12
True
>>> (a>7) and (a<12)
True
>>> 7<a<12
True

or의 특징

>>> gender,age="male",20
>>> gender=="female" and age>=18
False
>>> gender=="female" or age >=18
True
>>> gender=="female" or age<18
False

논리연산 and는 True와 False의 연산에 대해 False를 반환함

논리연산 or 는 True와 False의 연산에 대해 True를 반환함

논리연산 or는 False와 False의 연산에 대해서만 false를 반환함

 

not의 특징

>>> a=3
>>> not(a>7 and a<12)
True

False반환에 not연산 적용 -> True 반환

()를 사용하는 경우 연산자의 우선순위를 강제로 명시함

관계연산자가 논리연산자보다 우선하고, 논리연산자 not의 우선순위가 and와 or의 우선순위보다 앞서기 때문

 

비트 연산자의 특징

 

 

a=2, b=3 의 값을 저장 -> 4비트로 표현시 a=0010, b=0011

>>> a,b=2,3
>>> print(a&b)
2

양쪽의 비트가 1일 경우에 1, 그 외엔 모두 0

0010 & 0011 -> 0010 -> 10진정수로 2의 값을 가진다

 

비트 논리합

양쪽의 비트가 0일 경우에 0, 그 외엔 모두 1

>>> print(a|b)
3

0010 | 0011 -> 0011 -> 10진정수로 3의 값을 가진다

 

비트 배타적 논리합

양쪽의 비트가 다를경우 1, 같을 경우 0

>>> print(a^b)
1

0010 ^ 0011 -> 0001 -> 10진정수로 1의 값

 

비트 부정연산

비트 1을 0으로, 비트 0을 1로 바꿈

>>> print(~a)
-3

~ 0010 -> 1101

 

비트 시프트 연산자

8 = 8비트로 표현 시 0000 1000

>>> a=8
>>> print(a>>1)
4

우변의 숫자만큼 오른쪽으로 비트가 이동

왼쪽의 빈자리는 0으로 채우고, 오른쪽 경계를 벗어난 비트는 사라진다

0000 1000 >>1 -> 0000 0100 -> 10진정수 4

>>연산을 수행하면 오른쪽으로 이동할 때마다 정수 값을 반으로 줄이는 결과를 만듦

>>> print(a>>2)
2

변수 a의 값 8에 대해 비트 오른쪽 시프트 연산을 두번한 결과를 반환

0000 1000 >>2 -> 0000 0010 -> 10진정수 2

>>> print(a>>3)
1
>>> print(a<<1)
16

0000 1000 <<1 -> 0001 0000 -> 10진정수 16

<<연산을 수행하면 왼쪽으로 이동할 때마다 정수 값이 두 배가 되는 결과를 만듦

>>> print(a<<2)
32
>>> print(a<<3)
64

3. 연산자 우선순위

코드를 작성하면서 여러가지 연산자를 사용하기 때문에 미리 정의된 연산자의 순위를 아는것이 중요하다

1. 괄호가 최우선

2. 산술 연산이 비트 연산보다 우선

3. 관계 연산이 논리 연산보다 우선

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함