정보처리기사/25년 03차_문제풀이

[25년 03차 / 문제풀이] 연산자

Sury 2025. 5. 23. 17:32
개념

 

연산자 종류 연산자 의미 비고
비트 연산자 & 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