수식(expression)
- 상수, 변수, 연산자의 조합
- 연산자와 피연산자로 나누어진다.
3.14 * radius
*는 연산자이고 3.14, radius는 피연산자이다.
단항 연산자 : 피연산자 수가 1개
이항 연산자 : 피연산자 수가 2개
삼항 연산자 : 연산자의 수가 3개 (c언어에서 많이 사용한다.)
삼항연산자
ex)
x ? y : z ;
=> x가 조건, true면 y, false면 z가 된다.
삼항 연산자는 조건을 검사하고, 조건이 참이면 첫 번째 표현식(여기서는 y)이 실행되고,
거짓이면 두 번째 표현식(여기서는 z)이 실행된다.
따라서 x가 참이면 y가 선택되고, 거짓이면 z가 선택된다.
기능에 따른 연산자의 분류
산술 연산자
+ : 덧셈
- : 뺄셈
* : 곱셈
/ : 나눗셈 몫
% : 나머지 연산자(modulus operator) : 모듈러 연산자
증감 연산자
++ : 1씩 더한다
-- : 1씩 뺀다
y=++x 증가 후 대입하고,
y=x++ 대입 후, 증가된다.
대입 연산자
- 아래는 가능한 연산이다.
y = x = 3
복합 대입 연산자
: +=처럼 대입연산자 =와 산술연산자를 합쳐놓은 연산자이다.
복합대입 연산자 의미
x += 1 x = x+1
관계 연산자
== : 같다
!= : 다르다
> : 크다
>= : 이상이다
< : 작다
<= : 이하이다
논리 연산자
&& AND 연산 두 조건이 모두 참이어야 참이다
|| OR 연산 두 조건 중 하나만 참이어도 참이다
! NOT 연산
NOT 연산
- 관계 수식이나 논리 수식이 참이면 1이 생성되고 거짓이면 0이 생성된다.
- 피연산자의 참, 거짓을 가릴때는 0이 아니면 참이고 0이면 거짓으로 판단한다.
- 음수는 거짓으로 판단한다.
!0 // 식의 값은 1
!3 // 식의 값은 0
!-3 // 식의 값은 0
result = !1; // result에는 0이 대입된다
result = ! (2 == 3) // result에는 1이 대입된다
조건 연산자
absolute_value = ( x > y ) ? x : y ; // 절대값 계산
max_value = ( x > y) ? x : y ; // 최대값 계산
min_value = ( x < y ) ? x : y ; // 최소값 계산
( age > 20 ) ? printf("성인") : printf("청소년")
비트 연산자
각각의 자리수마다 AND 연산을 한다. 즉, 비트마다 짝지어서 연산을 하는 것이다.
XOR을 이용한 암호화
- 하나의 문자를 암호화하기 위해서는
encrpted_data = data^key; 하면 된다.
복호화도 data = encrpted_data^key; 하면 된다.
비트 이동 연산자 ( shift 쉬프트 연산이라고도 한다.)
- 빠른 연산이 가능하다.
<< 한 칸씩 왼쪽으로 옮기면, 2배 시킨것과 같다.
>> 한 칸씩 오른쪽으로 옮기면, 나누기 2를 한 것과 같다.
형변환
- 실행 중에 데이터의 타입을 변경하는 것이다.
올림변환
double f;
f = 10
=> 10.0으로 저장된다.
내림변환
int i;
i = 3.141592
=> 3으로 저장된다. (소수점 이하 버림의 기능이 가능하다)
자동 형변환
int 10 + double 1.2345
=> double 10.0 + double 1.2345 // int가 double 형으로 승급된다.
=> 11.2345 // 전체 수식의 결과값도 double 형이 된다.
형변환 하는 방법
(int)1.23456 // int형으로 변환
(double) x // double형으로 변환
(long) (x+y) // long형으로 변환
결합 규칙
- 만약 같은 우선순위를 가지는 연산자들이 여러개 있으면 어떤 것을 먼저 수행하여야 하는가?에 대한 규칙
'C Language' 카테고리의 다른 글
C언어 Basic 반복문 while, for 개념 (0) | 2024.06.18 |
---|---|
C언어 Basic 조건문 if, switch 개념 (0) | 2024.06.18 |
C언어 변수에 대해 학습하기 (2) (2) | 2024.06.12 |
C언어 변수에 대해 학습하기 (2) | 2024.06.11 |
C언어 프로그램 개발의 basic (기본) (0) | 2024.06.10 |