Search
Duplicate

연산자

Created
2021/11/18 08:53
Tags

대입 + 산술 연산자

표현식을 통한 의미
A += B, A -= B, A /= B, A %= B, A *= B
풀이
A += B (A = A + B)
A -= B (A = A - B)
A *= B (A = A * B)
A /= B (A = A / B)
A %= B (A = A % B)

증가 ++ 감소 연산자 - -

표현식
A++, ++A; → A = A + 1;
A- -, - - A; → A = A - 1;
++, - - 의 위치의 의미
전위식(prefix) : 변수 값을 1먼저 증가, 감소
후위식(postfix) : 후위식이 포함된 문장을 끝낸 후에 변수 값을 1증가 또는 감소

관계(비교) 연산자 relational operator

비교 연산자
비교 연산자는 어떠한 조건이 참인지 거짓인지를 판단하기 위한 연산자이다.
비교 연산자의 결과는 항상 0(false)와 1(ture)이다.
< , >, ≥ , ≤ , ==, ≠
<, > : 크거나 작거나를 표현하는 연산자이다.
≤ , ≥ : 크거나 같거나, 작거나 같거나를 표현하는 연산자이다.
==, ≠ : 우리가 수학에서 배웠던 =와 같은 의미를 가지고 있는게 == 연산자이다. 하지만 앞 != 이런식의 연산자는 다른 뜻을 가지고 있다. 앞에 !(Not)이 붙으면 같지 않다로 해석 할 수 있다.

논리 연산자 logical operator

C언어에서 참(ture)과 거짓(false)의 의미
ture : 0이외의 값
false : 0
&&(AND) : 그리고
연산식
결과
0 && 0
0
0 && 1
0
1 && 0
0
1 && 1
1
AND연산자의 경우는 논리곱이라고도 말을 한다. 여기서 말하는 논리곱이란, 두가지의 조건이 모두 0이 아닌 수(ture)가 나와야 true라고 하는 것을 논리곱이라고 한다.
|| (OR) : 또는
연산식
결과
0 || 0
0
0 || 1
1
1 || 0
1
1 || 1
1
OR연산자의 경우는 논리합이라고 한다. 논리합은 두가지 조건중에 하나라도 0이 아닌 수(true)가 나오면 true라고 하는 것을 논리합이라고 한다.
! (NOT)
연산식
결과
!0
1
!1
0
NOT연산자는 쉽게 생각하면 결과값을 반대로 뒤집어 준다고 생각하면 된다. 0(false)이면 1(true)로 해주는 식의 연산자이다.

비트 연산자 bitwise operator

&, |, ~
& : and, | : or, ~ : not
앞에서 배웠던 AND, OR, NOT과 같다고 생각하면 된다.
^ (XOR)
피연산자의 비트 값이 같으면 0 다르면 1
연산식
결과
0 ^ 0
0
0 ^ 1
1
1 ^ 0
1
1 ^ 1
0
비트연산자는 일반적인 프로그래밍에서는 잘 사용하지는 않는다. 하지만 자주 사용해야 하는 경우는 이미지관련된 연산을 해야할때, 예를들면 이미지를 흑백으로 전환한다거나, 이런경우에 비트연산을 많이 사용된다.
<<, >>
비트 이동
변수 또는 값 << 비트 이동 개수
변수 또는 값 >> 비트 이동 개수
num << 5
실제로 비트가 5칸 왼쪽으로 움직인 결과값이 나온다.
이렇게 비트가 움직이는 것을 보고 쉬프트(Shift)라고 한다.

형 변환 연산자 (type conversion)

일시적인 형(type) 변환
(데이터형) 변수 또는 상수
형 (type) 변환을 할 때 주의사항
메모리 크기와 데이터 허용 범위를 고려해야한다.
int a; char b; b = 10; a = b;
C
복사
위의 코드의 경우 warring 메시지가 나온다. 같은 데이터 형이 아니기 때문인데, 이부분을 해소하기 위해서는 캐스팅(형변환)을 해주어야 한다.
int a; char b; b = 10; a = (int)b;
C
복사
위의 코드처럼 a = (int)b; 이렇게 하면 일시적으로 저 코드 한줄의 한정된 상태에서 b의 값이 int형으로 형 변환이 되서 a에 값을 저장하게 된다.