증감연산자
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 |
댓글