본문 바로가기

컴퓨터 언어/C++

데이터 연산

✏ 산술 연산

 

✔ 산술 연산자: 더하기 (+), 빼기 (-), 곱하기 (*), 나누기 (/)

 

✔ 대입 연산

a = b //a에 b를 대입하고 b를 반환한다는 의미
a = b = 3; //오른쪽부터 차례대로 실행됨

 

✔ 증감연산자: 변수값을 1 증가시키거나 1 감소시킬 때 쓰는 연산자

a++; //a = a + 1 과 같은 의미
a--; //a = a - 1 과 같은 의미

✔ ++와 --가 변수의 앞에 붙는지 뒤에 붙는지에 따라 의미가 다르다.

b = a++; // a를 b에 적용시킨 이후 a + 1
b = ++a; // a를 1 증가시킨 후 b에 적용

 

 

✏ 비교 연산

 

✔ 변수의 값을 비교하는 연산

 

✔ 비교 연산 결과 참이면 1, 거짓이면 0

 

 

✏ 논리 연산

 

✔ 조건에 대한 논리적 사고가 필요할 때 쓰는 연산

 

✔ ||: or

 

✔ &&: and

 

 

✏ 비트 연산

 

✔ 비트 단위의 조작이 필요할 때 쓰이지만 많이 쓰이는 편은 아니다.

~ //bitwise not. 단일 숫자의 모든 비트를 ㅐㄷ상으로 0을 1, 1을 0으로 바꾸는 것
& //bitwise and. 두 숫자의 모든 비트 쌍을 대상으로 and를 실행한다.
| //bitwise or. 두 숫자의 모든 비트 쌍을 대상으로 or을 실행한다.
^ //bitwise xor: 두 숫자의 모든 비트 쌍을 대상으로 xor을 실행한다.
  //(두 숫자가 다르면 1, 두 숫자가 같으면 0)

 

✔ 좌측 이동과 우측 이동 (주의해야 함!)

<< 
/*
비트 좌측 이동. 비트열을 n만큼 왼쪽으로 이동한다. 
왼쪽의 넘치는 비트는 버리고, 오른쪽 생성되는 비트는 0
*/

>>
/*
비트 좌측 이동. 비트열을 n만큼 오른쪽으로 이동한다. 
오른쪽의 넘치는 비트는 버린다.
왼쪽의 생성되는 비트는 두가지 경우로 나뉜다.
1. 부호 비트가 존재할 경우 - 부호 비트를 따라감.
2. 부호 비트가 존재하지 않을 경우 (unsigned의 경우) - 0

 

✔ 좌측 이동과 우측 이동 예시

flag = (1 << 3); //1을 왼쪽으로 3번 이동 - 8으로 컴퓨터가 인식!

 

 

✏ Const

 

✔ constant의 약자. 한번 정해지면 절대 바뀌지 않을 값들 앞에 붙인다. (변수의 상수화)

 

✔ const를 붙이면 초기값을 반드시 지정해야 한다.

const int AIR = 0;

 

 

✏ 타입 변환

 

✔ 바구니를 교체한다는 뜻이다.

 

✔ 크기가 더 작은 타입으로 변환할 때 문제가 생길 수 있다.

int hp = 20;

short hp2 = hp; //윗쪽 비트 데이터가 잘린 상태로 저장됨
float hp3 = hp; //실수로 변환할 때 정밀도 차이가 있기 때문에 데이터 손실이 됨
unsigned int hp4 = hp; //비트 단위로 보면 똑같지만 분석하는 방법이 달라짐

 

'컴퓨터 언어 > C++' 카테고리의 다른 글

진수 입력 및 출력  (0) 2023.06.21
precision, fixed 함수  (0) 2023.04.24
srand(time(0))  (0) 2023.03.22
Enum  (0) 2023.03.22
문자와 문자열  (1) 2022.11.13