Write comments in your program, a discussion of what you see (and why), when you run this program (there should be some unexpected results).
Sample Output (no user input required):
Squaring powers of 10, storing in INT (32 bit)
10 squared = 100
100 squared = 10000
1000 squared = 1000000
10000 squared = 100000000
100000 squared = -2147483648
FLT_MAX=[url removed, login to view]+038
FLT_MIN DIVIDED BY 10 =1.1754946310819804e-039
((2+DBL_EPSILON)+DBL_EPSILON)=[url removed, login to view]+000
(2+(DBL_EPSILON+DBL_EPSILON))=[url removed, login to view]+000
.2 summed 100 times =[url removed, login to view]+001
.2 summed 10000 times =[url removed, login to view]+003
L A B S T E P S
STEP 1: (Unsigned) Integer Calculations (10 points)
Locate the smallest (negative) integer, INT_MIN, and print it. Then square INT_MIN and print the output.
Find the smallest power of 10 that when squared in C++ gives the wrong value. Present output that indicates the power chosen and the incorrect result that C++ calculates.
STEP 2: (Single-Precision) Floating Point Calculations (20 points)
Find the largest real value, FLT_MAX, and print it. Then double FLT_MAX and print the resulting value.
Find the smallest positive real value, FLT_MIN, and print it. Then divide FLT_MIN by 10 and print the resulting value.
If e represents double-precision machine epsilon for C++ (DBL_EPSILON), calculate 2 + e + e first by adding the numbers (using a computer) from left to right and then from right to left.
Sum (DO NOT MULTIPLY) repeated copies of 0.2:
100 times and print the output to as many digits as possible. Does it equal 20.0?
10,000 times and print the output to as many digits as possible. Does it equal 2000.0?
Here is a list of helpful include files: