.. _hw3-computer-math: Homework 3: Computer Math ######################### Of course computers can do math. But exactly how computers do math is a bit of a surprise to beginning programmers. Computer math is not exactly like the math you have been learning all this time. We need to play with it a bit and see why. Integers ******** One basic kind of number used in computers is an "integer". This is a simple one, it has no fractional part, and no decimal point (or commas for that matter): * 1,3,5,-7, 11 are all integers Integer Operations ================== * Adding, subtracting and multiplication all act normally. * Division is different! * remember how you did this in elementary school! * What is 5 / 2? * Not 2.5, tht is a different number * 2 goes into 5 2 times (with a remainder of 1) * You learned this long ago, but probably forgot it. * Limits * From HW2, you say the range of legal numbers for some "types" of numbers in C++ * What happens if you go beyond those values. * unsigned number is 0, what is one less than that? * unsigned number is limited to 255, what is one more than that? Floating Point Numbers ********************** "Real" numbers have decimal points, and fractional parts. They can be very big, or very little. * Two different ways of showing them: * Fixed point: 4.5 * Scientific: 0.45E+01 * The "Enn" part adjusts the decimal point by some power of 10) * Not every number can be represented: 1.0/3.0 * The "errors" in numbers can be a problem in some calculations: 1.0 / 3.0 * 3.0 = 0.99999999999 What to do ********** As part of learning about computer arithmetic, let's explore some basic terms. o a bit of research into computer arithmetic. Specifically see what you can find out about these terms: * Arithmetic Overflow * Arithmetic Underflow * IEEE Floating Point * Double Precision * Sign Bit * Rounding/Truncation * Arbitrary Precision * Precedence Rules write a short paragraph describing what each of these terms is about. Submit that text file on BB.