C++를 통해 당연히 연산도 할 수 있다. 기본적으로 알고 있는 덧셈, 뺄셈, 곱셉, 나눗셈에다가 새로운 '나머지 연산자'도 있다. 덧셈, 뺄셈, 곱셈은 일반적으로 알려진 것과 같고, 나눗셈에서는 나머지를 버리고 몫만 출력한다. 반대로 나머지 연산자는 몫 빼고 나머지를 출력한다.
cout.setf(ios_base::fixed, ios_base::floatfield);
float a = 58.27f;
float b = 4.71f;
cout << "a + b = " << a + b << endl;
cout << "a - b = " << a - b << endl;
cout << "a * b = " << a * b << endl;
cout << "a / b = " << a / b << endl;
//cout << "a % b = " << a % b << endl; // %는 소수점에서 불가능.

이 계산을 완벽하게 믿을 수는 없다. a - b의 결과를 보면 원래는 53.56이 나와야 하는데 53.560001이 나왔다. 유효 숫자의 한계이기 때문이다. 더 정밀한 계산을 하고 싶다면 double형이나 long double형을 쓰면 된다.
C++에는 우리가 알고 있는 사칙 연산 순서도 통한다.
사칙 연산의 자료형을 섞어서 쓸 수 있는데, 소수점 하나가 섞이면 결과도 무조건 소수점이다.
cout << "10 + 5 = " << 10 + 5 << endl; // 둘 다 정수면 결과도 정수.
cout << "10 + 5.0f = " << 10 + 5.0f << endl; // 둘 중 하나가 소수점이면 결과도 소수점.
cout << "10.0f * 5 = " << 10.0f * 5 << endl;
cout << "10.0f / 5.0f = " << 10.0f / 5.0f << endl; // 둘 다 소수점이면 결과도 소수점.
실행 결과.

나머지 연산은 무조건 정수 % 정수로 해야 한다. 소수점을 사용하면 오류가 난다.
cout << 18 / 7 << endl;
cout << 18 % 7 << endl;
실행 결과.

만약 자료형에 맞지 않는 숫자를 사용하면 어떻게 될까? 만약 정수의 자료형에다가 부동 소수점을 넣는다면 소수점 이하는 사라진다. 하지만 부동 소수점 자료형에 정수를 넣는다고 손실이 일어나지는 않는다. 자료형의 범위를 넘어서는 숫자를 넣어도 문제가 된다.
int a = 2.89; // 소수점 이하는 버린다.
float b = 3; // 손실은 없다.
int c = 2.89e19; // 알 수 없다.
bool d = 289; // 0 or 1로만 저장된다.
cout << a << endl;
cout << b << endl;
cout << c << endl;
cout << d << endl;
실행 결과.

데이터 앞에 (자료형)을 붙여서 자료형을 바꿀 수가 있다.
float a = 10 + (int)20.5f;
float b = 10 + int(20.5f); // 2가지 방법.
cout << a << endl;
cout << b << endl;
실행 결과.

만약 자료형 변환이 없었더라면 30.500000가 나왔어야 할 것이다.
일반적인 수식에서는 데이터 변환이 일어날 것 같지 않지만 사실은 그렇지 않다. 다음과 같은 수식을 보자.
short a = 10;
short b = 20;
short c = a + b;
이 수식에서 마지막 줄에서는 a + b를 실행하기 위해, a, b 각각을 int 자료형으로 변환하고, 더한 다음에 더한 임시 값을 다시 short 자료형으로 바꾸어서 넣는다. 따라서 이 수식을 계산하기 필요한 바이트 수는 16byte이다. a, b, c 각각 4byte에다가, 더한 임시 값 4byte까지 합쳐서이다. 일반적으로 컴퓨터 내부에서 가장 자연스럽게 처리하는 방식이 int형이기 때문에 int형으로 바꾸는 것이다. 이는 int형 계산이 제일 빠르다는 뜻이기도 하다.