CSE 202: Computer Science II, Winter 2018
Working with Arithmetic types

In the previous article, the arithmetic types and their literals were discussed. There are C++ language features and C++ standardl ibrary components that allow you to perform computation with integers and real numbers. You should already be familiar with expression. An expression is a sequence of operators and operands which may specify a computation and result in a value. Some operators you should be familiar with include: simple assignment, addition, subtraction, multiplication, and division.

Assignment operators

In addition to simple assignment, the follownig other assignment operators are provided:

Operator Syntax Equivalent expression
Addition assignment a += b a = a + b
Subtraction assignment a -= b a = a - b
Multiplication assignment a *= b a = a * b
Division assignment a /= b a = a / b
Modulo assignment a %= b a = a % b
Increment and decrement operators
Operator Syntax Meaning
Pre-increment ++a Increment a and return the new value
Post-increment a++ Increment a and return the old value
Pre-decrement --a Decrement a and return the new value
Post-decrement a-- Decrement a and return the old value

The expression ++a is exactly equivalent to a += 1. The expression --a is exactly equivalent to a -= 1.

Common mathematical functions

By including the <cmath> header file, you gain access to the common mathematical functions of the C++ numerics library.

Here are some expressions using the common mathematical functions:

Expression Meaning
abs(x) Absolute value of integer value x
fabs(x) Absolute value of floating-point value x
exp(x) e raised to the power of x
log(x) Natural logarithm of x
log10(x) Base 10 logarithm of x
sqrt(x) Square root of x
sin(x) Sine of x
cos(x) Cosine of x
tan(x) Tangent of x
asin(x) Arc sine of x
acos(x) Arc cosine of x
atan(x) Arc tangent of x
ceil(x) Rounds up x to the nearest integer
floor(x) Rounds down x to the nearest integer
pow(x, y) x raised to the power of y

All trigonometric functions expect an argument in radians.

For the full reference of these functions visit: http://en.cppreference.com/w/cpp/numeric/math

Mixing integer types with floating-point types

In a later article, the specific implicit conversions that take place when mixing integer values with floating-point values inside expressions will be discussed.

As a general rule though, the result of a non-assignment expression using different arithmetic types is a value that has the same type as the operand having the largest object representation in memory, with floating-point types having priority.

Thus, if you add a double to an int, the result is double. If you subtract a short int from a long int, the result is a long int. If you divide a float by a long double, the result is a long double. If you multiply a float with an int, the result is a float.