POCU 강의
5. 연산자2
차나히
2024. 5. 20. 07:46
✔️ 비트 연산자
- &(and) 연산자
- 12 & 9
- 위 식을 2진수로 풀어써보면, 1100 & 1001 이 되며, & 연산자를 이용하여 연산하면 같은 자리의 두 비트를 비교하여 둘 다 1일 경우만 1이 되는 연산.
- 즉, 결과값은 1000
- |(or) 연산자
- 12 | 9
- 위 식을 2진수로 풀어써보면, 1100 & 1001 이 되며, | 연산자를 이용하여 연산하면 같은 자리의 두 비트를 비교하여 둘 중 하나만 1이면 1이 되는 연산.
- 즉, 결과값은 1101
- ^(xor) 연산자
- 12^9
- 위 식을 2진수로 풀어써보면, 1100 & 1001 이 되며, ^ 연산자를 이용하여 연산하면 같은 자리의 두 비트를 비교하여 두 값이 다를 경우만 1이 되는 연산.
- 즉, 결과값은 0101
- ~(not) 연산자
- ~12
- 위 식을 2진수로 풀어써보면, ~1100 이 되며, ~ 연산자를 이용하여 연산하면 각 비트값을 다른 값으로 바꾸는 연산
- 즉, 결과값은 0011
- 예를 들어, int age = 12 에서 ~age 를 하게된다면, 결과값은 11111...1110011 이라는 결과값이 나오게 된다.
✔️ 비트 이동(bit shift) 연산자
- <<(left-shift) 연산자
- int op1 = 12 라고 할 때, op1 << 1 은 op1 변수를 왼쪽으로 1만큼 비트 이동을 시킨것.
- 즉, 0000....001100 을 op1 의 비트 구성이라고 할때, 왼쪽으로 1만큼 비트 이동을 시키면, 0000....011000 이 된다. 이때, 맨 앞에 있던 0은 없어지며, 뒤에 새롭게 붙는 비트의 값은 0이 된다.
- int op1 = 12 라고 할 때, op1 << 1 은 op1 변수를 왼쪽으로 1만큼 비트 이동을 시킨것.
- >> (right-shift) 연산자
- int op1 = 12 라고 할 때, op1 >> 1 은 op1 변수를 오른쪽으로 1만큼 비트 이동을 시킨것.
- 즉, 0000....001100 을 op1 의 비트 구성이라고 할때, 오른쪽으로 1만큼 비트 이동을 시키면, 0000....000110 이 된다. 이때, 맨 뒤에 있던 0은 없어지며, 앞에 새롭게 붙는 비트의 값은 0이 된다.
- int op1 = 12 라고 할 때, op1 >> 1 은 op1 변수를 오른쪽으로 1만큼 비트 이동을 시킨것.
✔️ 대입 연산자
- 연산자 왼쪽에 있는 피연산자에 연산자의 오른쪽에 있는 피연산자의 값을 대입하는 연산자이며 연산기호는 "=" 로 사용한다.
- 수학에서는 "대입" 및 "같다" 로 사용하지만 프로그래밍에서는 아니다!
- 다른 연산자와의 조합
- 대입 연산자는 일부 다른 연산자와 조합이 가능하다