Chapter 2 - Data Representation PDF
Document Details
Uploaded by NavigableNephrite6311
null
2007
null
M. Murdocca and V. Heuring
Tags
Summary
This document is Chapter 2 of a textbook on Computer Architecture and Organization. It focuses on data representation topics such as fixed-point and floating-point numbers, base conversions, and related concepts. The chapter includes examples and explanations. Published in 2007.
Full Transcript
2-1 Chapter 2 - Data Representation Computer Architecture and Organization Chapter 2 – Data Representation C...
2-1 Chapter 2 - Data Representation Computer Architecture and Organization Chapter 2 – Data Representation Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-2 Chapter 2 - Data Representation Chapter Contents 2.1 Fixed Point Numbers 2.2 Floating-Point Numbers 2.3 Case Study: Patriot Missile Defense Failure Caused by Loss of Precision 2.4 Character Codes Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-3 Chapter 2 - Data Representation Fixed Point Numbers Using only two digits of precision for signed base 10 numbers, the range (interval between lowest and highest numbers) is [-99, +99] and the precision (distance between successive numbers) is 1. The maximum error, which is the difference between the value of a real number and the closest representable number, is 1/2 the precision. For this case, the error is 1/2 ´ 1 = 0.5. If we choose a = 70, b = 40, and c = -30, then a + (b + c) = 80 (which is correct) but (a + b) + c = -30 which is incorrect. The problem is that (a + b) is +110 for this example, which exceeds the range of +99, and so only the rightmost two digits (+10) are retained in the intermediate result. This is a problem that we need to keep in mind when representing real numbers in a finite representation. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-4 Chapter 2 - Data Representation Weighted Position Code The base, or radix of a number system defines the range of possible values that a digit may have: 0 – 9 for decimal; 0,1 for binary. The general form for determining the decimal value of a number is given by: Example: 541.2510 = 5 ´ 102 + 4 ´ 101 + 1 ´ 100 + 2 ´ 10-1 + 5 ´ 10-2 = (500)10 + (40)10 + (1)10 + (2/10)10 + (5/100)10 = (541.25)10 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-5 Chapter 2 - Data Representation Base Conversion with the Remainder Method Example: Convert 23.37510 to base 2. Start by converting the integer portion: Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-6 Chapter 2 - Data Representation Base Conversion with the Multiplication Method Now, convert the fraction: Putting it all together, 23.37510 = 10111.0112 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-7 Chapter 2 - Data Representation Nonterminating Base 2 Fraction We can’t always convert a terminating base 10 fraction into an equivalent terminating base 2 fraction: Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-8 Chapter 2 - Data Representation Base 2, 8, 10, 16 Number Systems Example: Show a column for ternary (base 3). As an extension of that, convert 1410 to base 3, using 3 as the divisor for the remainder method (instead of 2). Result is 1123 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-9 Chapter 2 - Data Representation More on Base Conversions Converting among power-of-2 bases is particularly simple: 10112 = (102)(112) = 234 234 = (24)(34) = (102)(112) = 10112 1010102 = (1012)(0102) = 528 011011012 = (01102)(11012) = 6D16 How many bits should be used for each base 4, 8, etc., digit? For base 2, in which 2 = 21, the exponent is 1 and so one bit is used for each base 2 digit. For base 4, in which 4 = 22, the exponent is 2, so so two bits are used for each base 4 digit. Likewise, for base 8 and base 16, 8 = 23 and 16 = 24, and so 3 bits and 4 bits are used for base 8 and base 16 digits, respectively. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-10 Chapter 2 - Data Representation 1 1 1 1 1 1 1 1 7 6 5 4 3 2 1 0 27 26 25 24 23 22 21 20 254 10 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-11 Chapter 2 - Data Representation Try Yourself Convert the following decimal numbers to binary numbers using remainder method: 100 55 105 80 Convert the following binary numbers to decimal numbers using power-of-2 bases: 1010111 100111 100110 1100 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-12 Chapter 2 - Data Representation Reference http://web.math.princeton.edu/math_alive/Crypto/Lab1/BinA ddEx1.html https://www.youtube.com/watch?v=5F6orbqZigI Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-13 Chapter 2 - Data Representation BINARY ADDITION Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-14 Chapter 2 - Data Representation Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-15 Chapter 2 - Data Representation Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-16 Chapter 2 - Data Representation Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-17 Chapter 2 - Data Representation Binary Addition This simple binary addition example provides background for the signed number representations to follow. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-18 Chapter 2 - Data Representation Add the following unsigned binary numbers: 1. 1011 and 1001 2. 10010 and 1110 3. 10101110 and 100111 4. 111000 and 100110 5. 11111 and 10101 6. 1100 and 11001 7. 1110 and 10111 8. 11111 and 11101 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-19 Chapter 2 - Data Representation Signed Fixed Point Numbers For an 8-bit number, there are 28 = 256 possible bit patterns. These bit patterns can represent negative numbers if we choose to assign bit patterns to numbers in this way. We can assign half of the bit patterns to negative numbers and half of the bit patterns to positive numbers. Four signed representations we will cover are: Signed Magnitude One’s Complement Two’s Complement Excess (Biased) Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-20 Chapter 2 - Data Representation 3-Bit Signed Integer Representations Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-21 Chapter 2 - Data Representation Signed Magnitude Also know as “sign and magnitude,” the leftmost bit is the sign (0 = positive, 1 = negative) and the remaining bits are the magnitude. Example: +2510 = 000110012 -2510 = 100110012 Two representations for zero: +0 = 000000002, -0 = 100000002. Largest number is +127, smallest number is -12710, using an 8-bit representation. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-22 Chapter 2 - Data Representation One’s Complement The leftmost bit is the sign (0 = positive, 1 = negative). Negative of a number is obtained by subtracting each bit from 2 (essentially, complementing each bit from 0 to 1 or from 1 to 0). This goes both ways: converting positive numbers to negative numbers, and converting negative numbers to positive numbers. Example: +2510 = 000110012 -2510 = 111001102 Two representations for zero: +0 = 000000002, -0 = 111111112. Largest number is +12710, smallest number is -12710, using an 8-bit representation. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-23 Chapter 2 - Data Representation Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-24 Chapter 2 - Data Representation Try Yourself Write the 1's complement for each of the following binary numbers 0100 2 010111 2 010111 2 00001111 2 Convert the following decimal numbers to binary using 6-bit 1's complement representation. -16 10 13 10 -3 10 -10 10 26 10 -31 10 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-25 Chapter 2 - Data Representation Two’s Complement The leftmost bit is the sign (0 = positive, 1 = negative). Negative of a number is obtained by adding 1 to the one’s complement negative. This goes both ways, converting between positive and negative numbers. Example (recall that -2510 in one’s complement is 111001102): +2510 = 000110012 -2510 = 111001112 One representation for zero: +0 = 000000002, -0 = 000000002. Largest number is +12710, smallest number is -12810, using an 8-bit representation. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-26 Chapter 2 - Data Representation Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-27 Chapter 2 - Data Representation Excess (Biased) The leftmost bit is the sign (usually 1 = positive, 0 = negative). Positive and negative representations of a number are obtained by adding a bias to the two’s complement representation. This goes both ways, converting between positive and negative numbers. The effect is that numerically smaller numbers have smaller bit patterns, simplifying comparisons for floating point exponents. Example (excess 128 “adds” 128 to the two’s complement version, ignoring any carry out of the most significant bit) : +1210 = 100011002 -1210 = 011101002 One representation for zero: +0 = 100000002, -0 = 100000002. Largest number is +12710, smallest number is -12810, using an 8-bit representation. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-28 Chapter 2 - Data Representation Excess Notation with n bits 1000…0 represent 2n-1 is the decimal value in unsigned notation. Decimal value Decimal value In unsigned In excess notation - 2n-1 = notation Therefore, in excess notation: 1000…0 will represent 0. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-29 Chapter 2 - Data Representation Example (1) - excess to decimal Find the decimal number represented by 10011001 in excess notation. Unsigned value = 100110012 = 27 + 24 + 23 + 20 = 128 + 16 +8 +1 = 15310 (unsigned decimal number) Excess value: excess value = 153 – 27 = 153 – 128 = 25 (decimal value in excess notation) Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-30 Chapter 2 - Data Representation Example (2) - decimal to excess Represent the decimal value 24 in 8-bit excess notation. We first add, 28-1, the fixed value 24 + 28-1 = 24 + 128= 152 then, find the unsigned value of 152 15210 = 10011000 (unsigned notation). 2410 = 10011000 (excess notation) Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-31 Chapter 2 - Data Representation example (3) Represent the decimal value -24 in 8-bit excess notation. We first add, 28-1, the fixed value -24 + 28-1 = = -24 + 128 = 104 then, find the unsigned value of 104 10410 = 01101000 (unsigned notation). -2410 = 01101000 (excess notation) Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-32 Chapter 2 - Data Representation Try Yourself Represent the following binary numbers to unsigned, sign magnitude , excess, 1’s complement and 2’s complement notation: 1100 11001 11111 Give the value of +88, -88 , -1, 0, +1, -127, and +127 in 8-bit sign-magnitude and one’1 complement representation. Find the two’s complement for the following negative integers: a. -11 b. -43 c. -123 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-33 Chapter 2 - Data Representation Base 10 Floating Point Numbers Floating point numbers allow very large and very small numbers to be represented using only a few digits, at the expense of precision. The precision is primarily determined by the number of digits in the fraction (or significand, which has integer and fractional parts), and the range is primarily determined by the number of digits in the exponent. Example (+6.023 ´ 1023): Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-34 Chapter 2 - Data Representation Normalization The base 10 number 254 can be represented in floating point form as 254 ´ 100, or equivalently as: 25.4 ´ 101, or 2.54 ´ 102, or.254 ´ 103, or.0254 ´ 104, or infinitely many other ways, which creates problems when making comparisons, with so many representations of the same number. Floating point numbers are usually normalized, in which the radix point is located in only one possible position for a given number. Usually, but not always, the normalized representation places the radix point immediately to the left of the leftmost, nonzero digit in the fraction, as in:.254 ´ 103. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-35 Chapter 2 - Data Representation Floating Point Example Represent.254 ´103 in a normalized base 8 floating point format with a sign bit, followed by a 3-bit excess 4 exponent, followed by four base 8 digits. Step #1: Convert to the target base..254 ´ 103 = 25410. Using the remainder method, we find that 25410 = 376 ´ 80: 254/8 = 31 R 6 31/8 = 3 R 7 = 3/8 = 0 R 3 Step #2: Normalize: 376 ´ 80 =.376 ´ 83. Step #3: Fill in the bit fields, with a positive sign (sign bit = 0), an exponent of 3 + 4 = 7 (excess 4), and 4-digit fraction =.3760: 0 111. 011 111 110 000 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-36 Chapter 2 - Data Representation Error, Range, and Precision In the previous example, we have the base b = 8, the number of significant digits (not bits!) in the fraction s = 4, the largest exponent value (not bit pattern) M = 3, and the smallest exponent value m = -4. In the previous example, there is no explicit representation of 0, but there needs to be a special bit pattern reserved for 0 otherwise there would be no way to represent 0 without violating the normalization rule. We will assume a bit pattern of 0 000 000 000 000 000 represents 0. Using b, s, M, and m, we would like to characterize this floating point representation in terms of the largest positive representable number, the smallest (nonzero) positive representable number, the smallest gap between two successive numbers, the largest gap between two successive numbers, and the total number of numbers that can be represented. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-37 Chapter 2 - Data Representation Error, Range, and Precision (cont’) Largest representable number: bM ´ (1 - b-s) = 83 ´ (1 - 8-4) Smallest representable number: bm ´ b-1 = 8-4 - 1 = 8-5 Largest gap: bM ´ b-s = 83 - 4 = 8-1 Smallest gap: bm ´ b-s = 8-4 - 4= 8-8 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-38 Chapter 2 - Data Representation Error, Range, and Precision (cont’) Number of representable numbers: There are 5 components: (A) sign bit; for each number except 0 for this case, there is both a positive and negative version; (B) (M - m) + 1 exponents; (C) b - 1 values for the first digit (0 is disallowed for the first normalized digit); (D) bs-1 values for each of the s-1 remaining digits, plus (E) a special representation for 0. For this example, the 5 components result in: 2 ´ ((3 - 4) + 1) ´ (8 - 1) ´ 84-1 + 1 numbers that can be represented. Notice this number must be no greater than the number of possible bit patterns that can be generated in 16 bits, which is 2 16. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-39 Chapter 2 - Data Representation Example Floating Point Format Smallest number is 1/8 Largest number is 7/4 Smallest gap is 1/32 Largest gap is 1/4 Number of representable numbers is 33. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-40 Chapter 2 - Data Representation Gap Size Follows Exponent Size The relative error is approximately the same for all numbers. If we take the ratio of a large gap to a large number, and compare that to the ratio of a small gap to a small number, then the ratios are the same: Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-41 Chapter 2 - Data Representation Conversion Example Example: Convert (9.375 ´ 10-2)10 to base 2 scientific notation Start by converting from base 10 floating point to base 10 fixed point by moving the decimal point two positions to the left, which corresponds to the -2 exponent:.09375. Next, convert from base 10 fixed point to base 2 fixed point:.09375 ´ 2 = 0.1875.1875 ´ 2 = 0.375.375 ´ 2 = 0.75.75 ´ 2 = 1.5.5 ´ 2 = 1.0 Thus, (.09375)10 = (.00011)2. Finally, convert to normalized base 2 floating point: 00011 =.00011 ´ 20 = 1.1 ´ 2-4 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-42 Chapter 2 - Data Representation IEEE-754 Floating Point Formats Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-43 Chapter 2 - Data Representation IEEE-754 Examples Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-44 Chapter 2 - Data Representation IEEE-754 Conversion Example Represent -12.62510 in single precision IEEE-754 format. Step #1: Convert to target base. -12.62510 = -1100.1012 Step #2: Normalize. -1100.1012 = -1.1001012 ´ 23 Step #3: Fill in bit fields. Sign is negative, so sign bit is 1. Exponent is in excess 127 (not excess 128!), so exponent is represented as the unsigned integer 3 + 127 = 130. Leading 1 of significand is hidden, so final bit pattern is: 1 1000 0010. 1001 0100 0000 0000 0000 000 Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-45 Chapter 2 - Data Representation Effect of Loss of Precision According to the General Accounting Office of the U.S. Government, a loss of precision in converting 24-bit integers into 24- bit floating point numbers was responsible for the failure of a Patriot anti- missile battery. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-46 Chapter 2 - Data Representation ASCII Character Code ASCII is a 7-bit code, commonly stored in 8-bit bytes. “A” is at 4116. To convert upper case letters to lower case letters, add 2016. Thus “a” is at 4116 + 2016 = 6116. The character “5” at position 3516 is different than the number 5. To convert character- numbers into number- numbers, subtract 3016: 3516 - 3016 = 5. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-47 Chapter 2 - Data Representation EBCDIC is an 8- bit code. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring 2-48 Chapter 2 - Data Representation Unicode Character Code Unicode is a 16- bit code. Computer Architecture and Organization by M. Murdocca and V. Heuring © 2007 M. Murdocca and V. Heuring