안녕하세요 주니입니다.
수는 더하기, 빼기 그리고 곱하기와 같은 연산이 가능합니다.
마찬가지로, 프로그래밍 언어의 숫자들도 연산이 가능합니다.
프로그래밍에서 연산을 도와주는 것이 연산자들입니다.
기본적으로, 파이썬에는 숫자타입으로 int, float, complex가 있습니다.
특정 타입과 상관없이 모든 숫자타입은 수 연산자들로 연산이 가능합니다.
또한, 컴퓨터 내부적으로 숫자들은 2진수로 표현됩니다.
그러므로, 2진수 연산인 비트연산도 지원합니다.
우리는 이 글에서 산술 연산자들과 비트 연산자들에 대해서 공부하겠습니다.
산술 연산자들
파이썬에서 산술 연산자는 아래와 같습니다.
연산자 | 기능 | |||
---|---|---|---|---|
x + y | x와 y의 더하기 | |||
x - y | x와 y의 빼기 | |||
x * y | x 곱하기 y | |||
x / y | x 나누기 y | |||
x // y | x를 y로 나눈 몫 | |||
x % y | x를 y로 나눈 나머지 | |||
-x | x의 음수 | |||
+x | x의 양수 | |||
x ** y | x의 y제곱승 |
위 표에서 더하기, 빼기 와 같은 단순한 연산들은 이해하기 쉽습니다.
하지만 //와 **는 생소할 수 있습니다.
// 연산을 하면 나누기 연산을 하고 몫만 취하게 됩니다.
예를 들면,
5/2의 몫은 2이고 나머지는 1입니다.
/ 연산자를 이용해서 나누기를 하면 2.5라는 결과를 얻습니다.
하지만, // 연산자를 이용해서 나누기를 하면 몫 2만을 결과로 얻습니다.
a = 5 / 2 b = 5 // 2 print("5 / 2 = ",a) print("5 // 2 = ",b)
**는 제곱승입니다. c언어의 pow 함수와 같습니다.
예를 들면, 2 ** 3을 하게 되면 8이라는 결과를 얻습니다.
a = 2 ** 3 b = pow(2,3) print("2 ** 3 = ", a) print("pow(2,3) = ",b)
비트 연산자들
비트 연산자들은 아래와 같습니다.
연산자 | 기능 | |||
---|---|---|---|---|
x | y | x와 y의 or 연산 | |||
x ^ y | x와 y의 xor 연산 | |||
x & y | x와 y의 and 연산 | |||
x << n | x를 n번 왼쪽으로 이동 | |||
x >> n | x를 n번 오른쪽으로 이동 | |||
~x | x의 역 |
|는 or 연산입니다. x와 y의 비트중 하나라도 1이면 1입니다.
예를 들면, 2는 2진수로 10 입니다. 그리고 3은 2진수로 11입니다.
2와 3을 or 연산하면, 11이 됩니다. 십진수로 3이 결과가 됩니다.
^는 xor 연산입니다. x와 y의 비트중 둘 중 하나만 1이면 1입니다.
예를 들면, 2는 2진수로 10 입니다. 그리고 3은 2진수로 11입니다.
2와 3을 xor 연산하면, 01이 됩니다. 십진수로 1이 결과가 됩니다.
&는 and 연산입니다. x와 y의 비트 모두 1일 경우만 1입니다.
예를 들면, 2는 2진수로 10 입니다. 그리고 3은 2진수로 11입니다.
2와 3을 and 연산하면, 10이 됩니다. 십진수로 2가 결과가 됩니다.
<<는 왼쪽 shift 연산입니다. 모든 비트를 n번 왼쪽으로 이동 시킵니다. 1번 이동 시킬때 곱하기 2의 효과가 있습니다.
예를 들면, 2는 2진수로 10입니다.
2를 1번 왼쪽 shift를 하면 100이 됩니다. 십진수로 4입니다.
>>는 오른쪽 shift 연산입니다. 모든 비트를 n번 오른쪽으로 이동 시킵니다. 1번 이동 시킬때 나누기 2의 효과가 있습니다.
예를 들면, 2는 2진수로 10입니다.
2를 1번 오른쪽 shift를 하면 01이 됩니다. 십진수로 1입니다.
shift 연산에서 음의 방향으로 이동은 ValueError 예외를 발생시킵니다.
코드로 확인을 해보겠습니다.
a = 2 b = 3 print("2 | 3 = ", 2|3) print("2 ^ 3 = ", 2^3) print("2 & 3 = ", 2&3) print("2 << 1 = ", 2<<1) print("2 >> 1 = ", 2>>1) print("2 << -1 = ", 2<<-1)
python 정수 실수 연산자
Reviewed by Juny
on
7월 21, 2019
Rating:
댓글 없음: