승쨩개발공부
[C++] 연산자 / 형 변환 본문
연산자
연산 후에 결과를 반환하는 것.
연산자의 종류
산술 연산자, 대입 연산자, sizeof연산자, 관계 연산자, 논리 연산자, 비트 단위 연산자,
단향 연산자, 이향 연산자, 삼향 연산자 가 있다.
1. 산술 연산자 (이향 연산자)
+, -, /, %
%(나머지 연산자)
프로그래밍에서는 나머지 연산자도 많이 사용된다.
어떤 값을 몇으로 나머지 연산을 수행하느냐에 따라 나오는 개수가 고정될 수 있다.
5 / 3 -> 1 몫
5%3 -> 2 나머지
2. 대입 연산자 (이향 연산자)
=(대입 연산자)
우측에서 좌측으로 대입(복사)가 이루어진다.
단, 대입 연산자 기준 양 항은 같은 타입의 자료형이어야 한다
int iA = 10;
int iB = iA;
3. Sizeof 연산자 (단항 연산자)
괄호 안에 넣어주는 자료형의 크기 또는 변수가 할당된 메모리의 크기를
byte단위로 반환해주는 연산자
sizeof(자료형 / 변수명)
4. 관계 연산자 (이향 연산자)
두 피연산자의 대소관계를 비교한다
>, <, >=, <=, ==, !=
연산 후 참(1) 또는 거짓(0)을 반환한다.
5. 논리 연산자
두 피 연산자가 모두 참일 경우 또는 하나라도 참일 경우 등을 판별할떄 사용한다.
&&(and), ||(or), !(not)
1. &&(and) (이향 연산자) (그리고)
두 피연산자가 모두 참일 경우 참이 나온다.
두 피연산자 중 하나라도 거짓이 올 경우에는 거짓이 나온다.
시작부터 거짓이 올 경우 다음 연산은 수행하지 않는다.
2. ||(or) (이향 연산자) (또는)
둘 중 하나라도 참일 경우 참이 반환된다
둘 다 거짓일 경우에만 거짓이 반환된다.
시작부터 참이 올 경우에는 다음 연산은 수행하지 않는다
3.!(not) (단항 연산자) (아니다)
논리 부정
참 또는 거짓을 반대로 바꾼다
6. 비트 단위 논리 연산자
같은 비트열끼리 논리 연산을 수행하는 것.
& (and), | (or), ^(xor), ~(not)
1. &(and) (이향 연산자) (그리고)
두 비트가 모두 1일 경우 1이 된다.
두 비트중 하나라도 0일 경우 0이 된다.
2. |(or) (이향 연산자) (또는)
두 비트가 하나라도 1이면 1이 된다.
두 비트가 모두 0일 경우에만 0이 된다.
3. ^(xor) (이향 연산자)
두 비트가 같으면 0을 반환
두 비트가 다를경우 1을 반환
4. ~(not) (단항 연산자) (아니다)
0은 1로, 1은 0으로 바꾸는 연산자
비트 반전(1의 보수)
7. 쉬프트 연산자 , 비트단위 쉬프트 연산자
<<. >>
1. 쉬프트 연산자
2의 n승으로 곱하거나 (<<) 나눌떄 (>>) 사용한다.
2. 비트단위 쉬프트 연산자.
본 기능은 쉬프트 연산자 이지만 cout/cin 과 만나면서 입출력 연산자로 사용이 되었다.
정수 << 정수
좌측 정수의 비트열을 우측 정수의 값만큼 꺽쇠 방향으로 이동시켜주는 연산자.
비트를 이동시키다가 표현 범위를 넘어가면 값이 손실된다.
또한, 부호비트가 변경될 가능성이 있다.
형 변환
서로 다른 자료형을 같은 자료형으로 만들 수 있는 것.
-> 자료형을 변환 시키는 것.
형 변환 규칙
1. 대임 연산자 기준
대입 연산자 기준 좌측 좌료형으로 형 변환이 발생한다
묵시적 형 변환
사용자가 명시하지 않는 것을 컴파일러가 자동으로 바꿔주는 것.
단점으로는 경고 메세지가 출력될 수 있다 하지만 명시적 형 변환으로 해결할 수 있다.
명시적 형 변환 ex)
컴파일러에게 자료형을 반환한다고 알려주는것
float fA = (float)3;
int iB = (int)3.14;
축약 연산자
= (대입 연산자)를 추가하여 연산자를 합친 것.
+=, -=, *=, /=, %=, >>=, |=, &=
ex)
int iPlayer Hp = 100, iMonsterAtt = 10;
축약 연산자를 사용하지 않을 경우
iPlayerHp = iPlayerHp - iMonsterAtt;
축약 연산자를 사용할 경우
iPlayerHp -= iMonsterAtt;
증감 연산자
++, --
피 연산자의 값을 1 증가 또는 1감소시켜주는 연산자.
전위 , 후위 에 따라 작동 원리가 달라진다.
1.전위 증감
연산자가 피 연산자 앞에 붙는다
선 증감 후 연산으로 작동한다.
자기 자신이 증가한 후 연산 또한 자기 자신이 적용된다
ex) int iA = 3;
cout << "iA: " << ++iA << endl;
cout << "iA: " << iA << endl;
2. 후위 증감
연산자가 피 연산자 뒤에 붙는다
선 연산 후 증감 으로 작동한다.
자기 자신과 똑같은 임시 변수를 만들어 놓는다
이후 자기 자신은 증감 연산을 수행하고, 연산에 반영되는 것은 임시 변수가 반영된다.
-> 임시 변수는 말 그대로 임시이기 떄문에 코드라인을 벗어나는 즉시 소멸한다.
ex) int iA = 3;
cout << "iA: " << iA++ << endl;
cout << "iA: " << iA << endl;
삼향 연산자
피 연산자가 셋인 연산자를 삼향 연산자라 한다.
(피연산자1) ? (피 연산자2) : (피 연산자3)
피 연산자1 : 조건(참/거짓)을 피 연산자로 설정한다.
피 연산자2 : 피 연산자1의 조건이 참일 경우 수행하는 곳.
피 연산자3 : 피 연산자1의 조건이 거짓일 경우 수행하는 곳.
'C++' 카테고리의 다른 글
[C++] 함수, 함수 오버로딩 , 디폴트 매개 변수 (0) | 2021.11.24 |
---|---|
[C++] 반복문(while, do while, for) (0) | 2021.11.24 |
[C++] 분기문 (if , switch) (0) | 2021.11.23 |
[C++] 변수 / 자료형 / 상수 / 표기법 (0) | 2021.11.23 |
[C++] 절차지향과 객체지향, 문자열출력 실행순서 / 주석 (0) | 2021.11.23 |