Computer arithmetic:
64-bit-numerals (base-2), vs 3-digit-numerals(base-10)
- What numbers can we represent, unsigned?
  64-bit:  0...2^64-1.     3-digit:  0...10^3-1
- How about using leading bit as a sign?
   (binary: use 1 for negative;  base-10: use 9 for negative...or [5,9].)
  64-bit:  2^63-1 max.     3-digit:  10^2-1 max; 
  How to represent 0 vs -0?

How to add two unsigned ints?  Normally, but we overflow.
   057 + 943  = 000 [discard the overlow, oh well]
How to add two signed numbers?  
   Drawback: the sign-digit handled separately [not overflow].
   57 + (-30) = [057] + [930] = [987] = -87, oops
   57 + (-60) = [057] + [960] = [017] = +17, oops
   4 + -2 = [00100] + [10010] = [10110] = -6, oops!
   

A better way: 2's-complement (or, 10's complement):
  negative numbers represented by: Invert every bit, then add 1.
  Advantages: - not two representations of 0; eke out one extra value.
              - the same algorithm works for signed & unsigned.
                Why?  Negative numbers are represented by 2^64-k  (or 10^-k):
                In base-10 we can see what that trick 
                of 'invert each digit and add 1' does:
                'invert a base-10 digit' means 'subtract from 9',
                so -30 mean 030 -> 969 -> 970.
                30 + -30 = [030] + [970] = 1000 -> [000]
   57+(-30) = [057] + [970] = [027] = 27
   57+(-60) = [057] + [940] = [997] = -3
   4 + (-2)
   4 + (-6)
  


Greatest Common Divisor, or 'gcd'.
gcd(900,1026):
  Imagine you want to make two buildings 900' tall and 1026' tall.
  What is the tallest measuring-stick which can measure
  both buildings, *and* not have any fractional part left over?

For example, a three-foot rod would evenly measure both 900' and 1026'
  (300x and 342x, resp).
  But you know, a 6' rod would work too (150x and 171x, resp.).
  But is 6' the *tallest* such rod?  (No!)

  (Or, instead of measuring rods, suppose you are using brick-heights:
  You want to use the same height brick on both buildings (to save cost),
  and you want to use as tall a brick as possible (to save work).)



Well, *whatever* size measure rod we use, if it evenly divides 900 and 1026,
it must also evenly divide the difference, 1026-900=126.
   In fact, gcd(1026,900)=gcd(90,36).
      (That's true of *any* divisor, not just the gcd)
   But wait a minute -- if a number divides 90 and 36,
     it also divides the difference: 90,54