ECE-1021

HOMEWORK #7

(Last Mod: 27 November 2010 21:38:38 )

ECE-1021 Home


PART A

Write and test the following functions: npown() and nlogn().

Each function takes two arguments. The first is a value of type double and is the value being operated on. The second is a value of type int that acts as a mode control value. If this value is True (non-zero), the function performs the forward operation while a False value directs the function to perform the inverse operation.

The forward operation of the first function, npown() - short for "n to the power of n" - results in a return value y such that y = nn where n is the value of the first argument to the function. The inverse operation returns the value y such that n = yy where again n is the value of the first argument to the function. 

The forward operation of the second function, nlogn(), results in a return value y such that y = n*log(n) where log() is the natural logarithm and n is the value of the first argument to the function. The inverse operation returns the value y such that n = y*log(y) where again n is the value of the first argument to the function. 


PART B

This part is to be done on paper and turned in at the beginning of the first class session after the homework Grace Period expires.

Work should be legible and neatly presented. The use of Engineering Paper (E-2 paper) is preferred. Answers should be clearly indicated.

The goal of this assignment is for you to gain proficiency in working with different number bases and number representations. As such, your work must reflect your ability to perform these operations, not the ability of the design team that developed your calculator. You may therefore use a calculator to perform base-10 computations only. Specifically, you may not use calculator functions that perform number base conversions or that permit you to work with numbers in any base other than decimal. You may use such functions to check your work only. You must show your work on all problems that require computation to receive credit.

Nibbles and Bits

  1. In decimal, what is the range (minimum, maximum) of a byte, word, and dword when used to represent signed integers using a two's complement representation?

Signed Integers

Represent the following decimal values as two-byte signed integers using singed binary, offset binary, one's complement, and two's complement representations. Express the results both in hex and in binary.

  1. +10,000.

  2. -10,000.

  3. +1

  4. -1

  5. -32,767

What are the decimal equivalents of the following values if each is a two-byte signed integer using a two's complement representation?

  1. 0xFFFF

  2. 0x8000

  3. 0x7FFF

  4. 0x0000

  5. 0xBEAD

  6. 0xFACE

  7. 0xAAAA

  8. 0x5000

Fixed Point Representation

Consider a four-byte signed fixed-point representation using two's complement and having eight-bits to the right of the radix point.

  1. What is the largest positive value that can be represented?

  2. What is the smallest positive value that can be represented?

  3. What value, in decimal, is represented by a pattern of all 1's?

IEEE Floating Point Representation

For the IEEE Single Precision Floating Point Format:

  1. What is the smallest non-zero positive value that can be represented?

  2. What is the largest value that can be represented?

  3. What is the smallest value x such that 1+x can be represented?

  4. What is the static range of this representation?

  5. What is the dynamic range of this representation?

  6. How many significant figures (in decimal) does this representation have?

  7. What is the largest integer, n, such that all integers from 0 through n can be exactly represented?

  8. What is the speed of light, in meters/second, in this representation (express the bytes in hex)?

Characters and Strings

The string "ECE-1021: Assignment #7" is stored at memory location 0xC000. The outer most quote marks are delimiters and are NOT stored as part of the string.

  1. What are the values stored at each of the relevant memory locations?

Byte Ordering and Cross Representation

Using a Little Endian protocol, the following values are stored in memory at the indicated locations:

  1. What values are in each of the sixteen bytes in the range 0xDFF0 through 0xDFFF?

  2. What value is obtained by reading a IEEE single precision floating point value from address 0xDFFC?

  3. What value is obtained by reading a Big Endian four-byte signed integer from memory location 0xDFF0?