[25년 03차 / 문제풀이] 연산자
개념
연산자 종류 | 연산자 | 의미 | 비고 |
비트 연산자 | & | and | 모든 비트가 1일 때만 1 |
^ | xor | 모든 비트가 같으면 0, 하나라도 다르면 1 | |
| | or | 모든 비트 중 한 비트라도 1이면 1 | |
~ | not | 각 비트의 부정, 0이면 1, 1이면 0 | |
⟪ | 왼쪽 시프트 | 비트를 왼쪽으로 이동 | |
⟫ | 오른쪽 시프트 | 비트를 오른쪽으로 이동 | |
논리 연산자 | ! | not | 부정 |
&& | and | 모두 참이면 참 | |
|| | or | 하나라도 참이면 참 |
☐ 비트 연산자
● 비트 연산자의 개념 : 비트별(0, 1)로 연산하여 결과를 얻는 연산자, 거짓(0) / 참(1)
● 비트 연산자의 종류
- & : and, 모든 비트가 1일 때만 1
- ^ : xor, 모든 비트가 같으면 0, 하나라도 다르면 1
- | : or, 모든 비트 중 한 비트라도 1이면 1
- ~ : not, 각 비트의 부정, 0이면 1, 1이면 0
- ⟪ : 왼쪽 시프트, 비트를 왼쪽으로 이동
- ⟫ : 오른쪽 시프트, 비트를 오른쪽으로 이동
☐ 논리 연산자
● 논리 연산자 : 두 개의 논리 값을 연산하여 참(true) 또는 거짓(false)을 결과로 얻는 연산자, 거짓(0) / 참(1)
● 논리 연산자의 종류
- ! : not, 부정
- && : and, 모두 참이면 참
- || : or, 하나라도 참이면 참
☐ PHP 연산자
● 산술 연산자
- 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)
- 증가 연산자(++), 감소 연산자(--)
● 비교 연산자 : 두 값 간의 크기나 일치 여부를 비교
- 동등 연산자(==) : 값 동일 여부
- 일치 연산자(===) : 값 동일 여부, 데이터 타입 동일 여부
- 크기 비교 연산자 : 크다(>), 작다(<), 크거나 같다(>=), 작거나 같다(<=), 다르다(!= / <>)
● 삼항 연산자 : 조건문을 간단하게 표현할 수 있게 해주는 연산자, 조건이 'true'이면 첫 번째 값을 반환하고 'false'이면 두 번째 값을 반환
- (조건) ? (첫 번째 값) : (두 번째 값)
● 논리 연산자 : 조건문에서 여러 조건을 결합하거나 반전시키는데 사용
- AND(&&) : 두 조건이 모두 'true'이면 'true'를 반환
- OR(||) : 두 조건 중 하나라도 'true'이면 'true'를 반환
- NOT(!) : 조건의 반대 값을 반환, 'true' < 'false', 'false' > 'true'
- 복합 논리 연산자 : 논리 연산자를 복합적으로 사용하는 것
● 문자열 연산자 : 문자열을 결합하거나 대입하는 데 사용
- 문자열 연결 연산자(.) : 두 개의 문자열을 결합
- 문자열 연결 대입 연산자(.=) : 기존 문자열에 새 문자열을 결합하여 할당
☐ 연산자 우선 순위
● 전체
우선 순위 높음 >>
- 단항 연산자 : ←
1. 단항 연산자 : !, ~, ++, -- , sizeof
- 이항 연산자 : (→)
2. 산술 연산자 : *, /, %
3. 시프트 연산자 : <<, >>
4. 관계 연산자 : <. <=, >=, >, ==, !=
5. 비트 연산자 : &, ^, |
6. 논리 연산자 : &&, ||
- 삼항 연산자 : →
7. 조건 연산자 : ?, :
- 대입 연산자 : ←
8. 대입 연산자 : =, +=, -=, *=, /=, %=, <<=, >>= 등
- 순서 연산자 : →
9. 순서 연산자 : ,
<< 우선 순위 낮음
● C언어의 연산자 우선 순위
- 1순위 (→)
+ x++ : 증가 연산자(뒤, 후위)
+ x++ : 감소 연산자(뒤, 후위)
+ ( ) : 함수 호출
+ [ ] : 배열 첨자
+ . : 구조체/공용체 멤버 접근
+ +> : 포인터로 구조체/공용체 멤버 접근
+ (자료형){값} : 복합 리터럴
- 2순위 (←)
+ ++x : 증가 연산자(앞, 전위)
+ ++x : 감소 연산자(앞, 전위)
+ +x : 단항 덧셈(양의 부호)
+ +x : 단항 뺄셈(음의 부호)
+ ! : 논리 NOT
+ ~ : 비트 NOT
+ (자료형) : 자료형 캐스팅(자료형 변환)
+ *x : 포인터 x 역참조
+ &x : x의 주소
+ sizeof : 자료형의 크기
- 3순위 (→)
+ : 곱셈
+ / : 나눗셈
+ % : 나머지
- 4순위 (→)
+ : 덧셈
+ : 뺄셈
- 5순위 (→)
+ << : 비트를 왼쪽으로 시프트
+ >> : 비트를 오른쪽으로 시프트
- 6순위 (→)
+ < : 작음
+ <= : 작거나 같음
+ > : 큼
+ >= : 크거나 같음
- 7순위 (→)
+ == : 같음
+ != : 다름
- 8+12순위 (→)
+ & : 비트 AND (8순위)
+ ^ : 비트 XOR (9순위)
+ | : 비트 OR (10순위)
+ && : 논리 AND (11순위)
+ || : 논리 OR (12순위)
- 13순위 (←)
+ ? : : 삼항 연산자
- 14순위 (←)
+ = : 할당
+ 복합 할당 연산자들:
+ +=, +=, *=, /=, %= : 산술 연산 후 할당
+ <<=, >>= : 시프트 연산 후 할당
+ &=, ^=, |= : 비트 연산 후 할당
- 15순위 (→)
+ , : 쉼표(콤마) 연산자
문제
☐ 비트 연산자
2020년-1회 63번. C언어에서 비트 논리연산자에 해당하지 않는 것은?
① ^
② ?
③ &
④ ~
정답 : 2
입력 답 : 1
☐ PHP 연산자
2020년-3차 80번. PHP에서 사용 가능한 연산자가 아닌 것은?
① @
② #
③ < >
④ ===
정답 : 2
입력 답 : 1
☐ 연산자 우선 순위
2021년-2차 76번. C언어에서 연산자 우선순위가 높은 것에서 낮은 것으로 바르게 나열된 것은?
<보기>
ㄱ. ( ) ㄴ. == ㄷ. < ㄹ. << ㅁ. || ㅂ. /
① ㄱ, ㅂ, ㄹ, ㄷ, ㄴ, ㅁ
② ㄱ, ㄹ, ㅂ, ㄷ, ㄴ, ㅁ
③ ㄱ, ㄹ, ㅂ, ㄷ, ㅁ, ㄴ
④ ㄱ, ㅂ, ㄹ, ㅁ, ㄴ, ㄷ
정답 : 1
입력 답 : 3
2021년-3차 67번. 다음 중 JAVA에서 우선순위가 가장 낮은 연산자는?
① --
② %
③ &
④ =
정답 : 4
입력 답 : 3