본문 바로가기
Programming/C++

C++ 연산자 (2)

by ahhang0k 2021. 4. 5.

증감연산자

int main {
	
    x = 10;
	
    cout << ++x;  // 11
    cout << x++;  // 11
    cout << x; // 12

}

 


 

논리연산자

&&|| 연산자보다는 우선 순위가 높다.

int main()
{
	int x = 10, y = 20;
	int r1, r2, r3, r4;

	r1 = (x == 10 && y == 20);
	r2 = (x == 10 && y == 30);
	r3 = (x >= 10 || y >= 30);
	r4 = !(x == 5);

	cout << "r1 " << r1 << endl;
	cout << "r2 " << r2 << endl;
	cout << "r3 " << r3 << endl;
	cout << "r4 " << r4 << endl;

	return 0;

}

단축계산

 && : 앞의 조건식에 거짓을 만나면 뒤에는 계산 x

  || : 앞의 조건식이 참이면 뒤에는 계산 x

 

 


 

조건 연산자

exp1? exp2 : exp3

=> exp1의 조건식이 참이면 exp2실행, 거짓이면 exp3이다.

 

 


 

시프트 연산자

<<

a<<1 의미: a의 값을 왼쪽으로 1만큼 이동한다. (1칸 이동) 

2의 이동한만큼 승만큼 곱하고

 

>>

a>>2 의미 : a의값을 오른쪽으로 2비트만큼 이동한다. (2칸 이동)

2의 이동한만큼 승만큼 나눈다.

 

 


 

콤마 연산자

앞에서 부터 조건식을 해결하고 맨끝의 값을 반환

cout << (x = 2 + 3, 2 - 3) << endl;  => -1 출력
cout << (x=(2+3, 2-3)); => x = -1 출력

 

 


 

 

비트 연산자

2의보수일떄 맨 앞자리가 1이면 음수 0이면 양수,

비트 연산은 비트, 즉 2진수의 각 자리수끼리 논리 연산을 하는 것이다.

ex)10 = 8 + 2 = 2의3승 + 2의 1승

int main()
{
	short x = 1;
	short y = 2;

	short r1 = x & y;
	short r2 = x | y;
	short r3 = ~x;
	short r4 = x ^ y;

	cout << x << "&" << y << "=" << r1 << endl;
	cout << x << " | " << y << " =" << r2 << endl;
	cout << "~" << x << "=" << r3 << "\n";
	cout << x << " ^ " << y << " =" << r4 << endl;

	return 0;

}

 

r1 = 1 << 3 => 1* 8 = 8

 

 


 

 

sizeof(자료형) 연산자

- 상수, 변수 그리고 연산식 결과의 크기를 byte로 표시

int main()
{
	cout << "int size :" << sizeof(int) << "\n";
	cout << "double size : " << sizeof(double) << "\n";
	cout << "(3+5.2)size : " << sizeof(3 + 5.2) << "\n";

	return 0;

}

 

 


 

우선순위

  • 콤마 < 대입 < 논리(‘||’ < ‘&&’) < 관계 < 산술(‘+’=‘-’<‘*’=‘/’=‘%’) < 단항 순으로 높다.
  • 괄호 연산자는 가장 우선순위가 높다.
int main()
{
	int x = 2, y = 3, z = 4;

	cout << (2 + 3 >= 3 + !2) << endl;
	cout << (2 > 3 || 6 > 7) << endl;
	cout << (2 || 3 && 3 > 2) << endl;
	cout << (++x + y--) << endl;
	cout << (x = y = z = 6) << endl;
	cout << (x = 2 + 3, 2 - 3) << endl; // 앞에서 부터 해결하고 맨끝의 값을 반환
	cout << (x = x * y) << endl;

	return 0;

 

 

'Programming > C++' 카테고리의 다른 글

C++ 실습 놀이동산 요금 0406  (0) 2021.04.06
제어문 - if문  (0) 2021.04.05
C++ 실습 입출력 0405  (0) 2021.04.05
C++ 입력 받기, 연산자 (1)  (0) 2021.04.04
C++ 기본  (0) 2021.04.04

댓글