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.