2010. 1. 14. 00:09 Programming/C/C++
[C/C++] 복합대입연산자
+=, -=, *=, /=, %=, ^=, |=등이 있으며 이들을 복합대입연산자 or OP= 연산자라고 한다.
================== [ 예제 1 ] ===========================
a = 0;
a += 10;
trace(a);
[결과: output창]
10
========================================================
a += 10; 은 a 변수의 값을 10으로 더하고, 더한 결과값을 a 변수에 다시 대입하라는 말입니다.
a = a + 10; 과 같은 의미입니다.
(주의) + 와 = 사이를 띄어쓰면 구문에러가 발생합니다.
================== [ 예제 2 ] ===========================
a = 10;
a -= 10;
trace(a);
[결과: output창]
0
========================================================
a -= 10; 은 a 변수의 값에서 10을 빼고, 뺀 결과값을 a 변수에 다시 대입하라는 말입니다.
a = a - 10; 과 같은 의미입니다.
================== [ 예제 3 ] ===========================
a = 10;
a *= 10;
trace(a);
[결과: output창]
100
========================================================
a *=10; 은 a 변수의 값을 10으로 곱하고, 곱해진 결과 값을 다시 a 변수에 대입하라는 말입니다.
a = a * 10; 과 같은 의미입니다.
================== [ 예제 4 ] ===========================
a = 10;
a /= 10;
trace(a);
[결과: output창]
1
========================================================
a /= 10; 은 a 변수의 값을 10으로 나누고, 나눠진 결과값을 다시 a 변수에 대입하라는 말입니다.
a = a / 10; 과 같은 의미입니다.
================== [ 예제 5 ] ===========================
a = 10;
a %= 3;
trace(a);
[결과: output창]
1
========================================================
a %= 3; 은 a 변수의 값을 3으로 나눠서 나머지를 구하고, 그 나머지 값을 a 변수에 대입하라는 말입니다.
a = a % 3; 과 같은 의미입니다.
================== [ 예제 6 ] ===========================
a = 0;
a ^= 1;
trace(a);
[결과: output창]
1
========================================================
a ^= 1; 은 a 변수에 ^(Xor)연산을 하고, 결과값을 다시 a 변수에 대입하라는 말입니다.
a = a ^ 1; 과 같은 의미입니다.
예제 6에서 사용된 ^(Xor)연산자는 현재 a 변수의 값이 0이면 1로 바꾸고, 1이면 0으로 다시 바꾸는 연산을 합니다.
(참고) ^ 연산자는 논리연산자 파트에서 자세히 설명드립니다.
더하기.
===============================
a = 0;
b = 10;
a++;
b--;
trace(a);
trace(b);
[결과 : output 창]
1
9
===============================
a++ 은 a = a + 1과 같은 의미이며 a+=1;과 같은 의미이다.
b-- 는 b = b - 1과 같은 의미이며 b-=1; 과 같은 의미이다.
원본 위치 <http://yawoong.com/board/view.php?id=tutorial_choi&no=39>
========================================================
aaa |= 1; 현재 가지고 있는 값에 값을 더한다.
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int aaa = 0;
aaa |= 1; cout << "aaa: " << aaa << endl;
aaa |= 2; cout << "aaa: " << aaa << endl;
aaa |= 4; cout << "aaa: " << aaa << endl;
aaa |= 8; cout << "aaa: " << aaa << endl;
aaa |= 16; cout << "aaa: " << aaa << endl;
aaa |= 32; cout << "aaa: " << aaa << endl;
aaa |= 64; cout << "aaa: " << aaa << endl;
aaa |= 128; cout << "aaa: " << aaa << endl;
return 0;
}
'Programming > C/C++' 카테고리의 다른 글
[C/C++] 문자열 라이브러리 함수 구현 (0) | 2010.01.13 |
---|---|
[C/C++] sprintf (0) | 2010.01.13 |
[C/C++] 문자열 복사 (0) | 2010.01.13 |
C++ Programming Style Guide-line (0) | 2009.12.19 |