4. 비교연산자
==, != , > , >= , <, ㅡ=, &&, || , ! 등
C언어에선 다른 고급언어들처럼 별도로 Boolean(논리값) 자료형을 제공하지 않는다. 참과 거짓을 각각 1,0으로 표현한다.
5. 비트연산자
bit단위로 논리 연산을 할 때 사용하는 연산자이고 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용된다.
연산자 | 의미 |
& | and |
^ | xor -모든 비트가 같으면 0, 하나라도 다르면 1 |
| | or |
~ | not |
<< | 왼쪽 시프트 - 비트를 왼쪽으로 이동 |
>> | 오른쪽 시프트 - 비트를 오른쪽으로 이동 |
ex1) a=4 (100) , b=6(110)
a^b =010
ex2) int x = -1; // 11111111 11111111 11111111 11111111
int y = x<<2; //왼쪽으로 2비트 이동
int z = x<<3; //왼쪽으로 3비트 이동
y == -4 // 11111111 11111111 11111111 11111100
z == -8 // 11111111 11111111 11111000
기타
삼항 연산자
// (조건식) ? (참일 때 실행 값) : (거짓일 때 실행 값)
(5 > 7) ? printf("1") : printf("0");
--> 0
sizeof 연산자
단항 연산자로 피연산자의 크기를 바이트 단위로 반환한다. 타입, 변수, 상수를 전달 받을 수 있다.
연산자 우선순위와 결합방향
수식 내에 우선순위가 같은 연산자가 둘 이상 있을 때, 연산자의 결합 방향은 어느 연산을 먼저 수행할 지를 결정한다.
a + b + c 의 경우
왼쪽에서 오른쪽으로 결합
-->(a+b) + c
a = b = c 의 경우
오른쪽에서 왼쪽으로 결합
--> a = ( b = c )
우선순위
일차식 : () , {} , ->, .
단항 연산자: ! ~ ++ -- - + * & sizeof
승제 연산자: * / %
가감 연산자: + -
시프트 연산자: << >>
비교 연산자: < <= > >=
등가 연산자: == !=
비트 연산자: & ^ |
논리 연산자: &&
조건 연산자: ?:
대입 연산자: = += -= *= /= %= >>= <<= &= ^= |=
콤마 연산자: ,
*단항, 조건,대입 연산자는 결합방향이 좌 <- 우 이다.
'2학년 > C' 카테고리의 다른 글
[C]포인터(1) (0) | 2023.07.24 |
---|---|
[C] 제어문 (0) | 2023.07.23 |
[C]변수와 연산자(3) (0) | 2023.07.21 |
[C]변수와 연산자(2) (0) | 2023.07.20 |
[C] 변수와 연산자(1) (0) | 2023.07.19 |