Creative Commons License Copyright © Michael Richmond. This work is licensed under a Creative Commons License.

Challenge: Computer representation of numbers

Challenge:

You are in charge of the US Census for 2000. You must design computers to keep track of people. How many bytes should you devote to the population count?
Answer: There are about 281,000,000 people in the US.
        This requires 29 bits to represent, because 

	         2^28  = 268,435,456
		 2^29  = 536,870,912

Challenge:

You are given a single byte, 8 bits, for storing signed, floating-point numbers. You have two choices: Answer the following questions for case A or case B:
  1. What is the largest positive value you can express?
  2. What is the smallest positive value you can express?
  3. What is the "average" spacing between values in your system? That is, what is the total range of positive values, divided by the number of different values inside that range?
  4. How many different values does your system have between the numbers 5.1 and 6.8?
Answer for Case A:

       I will use the convention that a "0" for a sign bit indicates "+",
       and a "1" for a sign bit indicates "-".  Then we have

                              sign   mantissa          sign  exponent
                              ---------------------------------------
    largest positive value:     0    1   1   1   1      0    1   1
                                
				     1   1   1   1           +3
                                     - + - + - + -          2
				     2   4   8   16

                                      
				        0.9375  x  8    =  7.5


    smallest positive value:    0    1   0   0   0      1    1   1
                                
				     1                       -3
                                     -                      2
				     2             


                                        0.5     x  1/8  =  0.0625



    Average spacing:  There are 8 different values for the normalized mantissa
                      (remember, the first digit must be "1").
		      There are 7 possible exponents: -3, -2, -1, 0, 1, 2, 3.
		      That makes 56 combinations.
		      The range of 0.0625 to 7.5, divided by 56 different
		      values, yields an average spacing of about 0.13.


    How many values between 5.1 and 6.8?

                      The exponent must be +3, since the mantissa must
		      be at least 0.5.  There are 8 possibilities to check:


		        mantissa  1000       yields  0.5    * 8   =   4
			          1001               0.5625 * 8   =   4.5
				  1010               0.625  * 8   =   5
				  1011               0.6875 * 8   =   5.5
				  1100               0.75   * 8   =   6
				  1101               0.8125 * 8   =   6.5
				  1110               0.875  * 8   =   7
				  1111               0.9375 * 8   =   7.5 
                                      
                      Three of these values fall into the desired range:
		      5.5, 6.0, 6.5.



Last modified 3/22/2001 by MWR.

Creative Commons License Copyright © Michael Richmond. This work is licensed under a Creative Commons License.