200 likes | 320 Views
Department of Computer and Information Science, School of Science, IUPUI. CSCI 230. Information Representation: Negative and Floating Point Representation . Dale Roberts, Lecturer IUPUI droberts@cs.iupui.edu. Negative Numbers in Binary.
E N D
Department of Computer and Information Science,School of Science, IUPUI CSCI 230 Information Representation: Negative and Floating Point Representation Dale Roberts, Lecturer IUPUI droberts@cs.iupui.edu
Negative Numbers in Binary • Four different representation schemes are used for negative numbers • Signed Magnitude • Left most bit (LMB) is the sign bit : • 0 positive (+) • 1 negative (-) • Remaining bits hold absolute magnitude Example: 210 0000 0010b -210 1000 0010b Q: 0000 0000 = ? 1000 0000 = ? Try, 1000 0100b = -410
One’s Compliment • Left most bit is the sign bit : • 0 positive (+) • 1 negative (-) • The magnitude is complimented Example: 210 0 000 0010b -210 1 111 1101b Exercise: try - 410using 1’s compliment Q: 0000 0000 = ? 1111 1111 = ? Solution: 410 = 0 0000100b -410 = 1 1111011b
Negative Numbers in Binary (cont.) • 2’s Compliment • Sign bit same as above • Magnitude is complimented first and a “1” is added to the complimented digits • Example: • 210 0 000 0010b • 1’s compliment 1 1111101b • +1 • -210 1 111 1110b • Exercise: try -710using 2’s compliment • 710 • 1’s compliment • +1 • -710 0000 0111b 11111000b • 1111 1001b
Negative Numbers in Binary (cont.) 710 = 0000 0111b 310 = 0000 0011b 1’s complement 1111 1100b 2’s complement 1111 1101b -310 7+(-3) 0000 0111 + 1111 1101 • Example: 7+(-3) [hint]: A – B = A + (~B) +1 1 1111 111 carry • ignore1 0000 0100 0000 0100 410
Negative Numbers in Binary (cont.) • Excess Representation • For a given fixed number of bits the range is remapped such that roughly half the numbers are negative and half are positive. Example: (as left) Excess – 8 notation for 4 bit numbers • Binary value = 8 + excess-8 value • MSB can be used as a sign bit, but • If MSB =1, positive (+ ve) number • If MSB =0, negative (- ve) number
Fundamental Data Type • With vs. without using sign bit • For a 16 bit binary pattern:
Fundamental Data Type • Four Data Typesin C(assume 2’s complement, byte machine) • Note: 27 = 128, 215 =32768, 215 = 2147483648 • Complex and double complex are not available
2 1 0 -1 -2 -3 22 21 20 2-1 2-2 2-3 4 2 1 ½ ¼ 1/8 x x x x Fractional Numbers Examples: 456.7810 = 4 x 102 + 5 x 101 + 6 x 100 + 7 x 10-1+8 x 10-2 1011.112 = 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 + 1 x 2-1 + 1 x 2-2 = 8 + 0 + 2 + 1 + 1/2 + ¼ = 11 + 0.5 + 0.25 = 11.7510 • Conversion from binary number system to decimal system Examples: 111.112 = 1 x 22 + 1 x 21 + 1 x 20 + 1 x 2-1 + 1 x 2-2 = 4 + 2 + 1 + 1/2 + ¼ = 7.7510 Examples: 11.0112
write in the same order • Conversion from decimalnumber system to binary system Examples: 7.7510 = (?)2 • Conversion of the integer part: same as before – repeated division by 2 7 / 2 = 3 (Q), 1 (R) 3 / 2 = 1 (Q), 1 (R) 1 / 2 = 0 (Q), 1 (R) 710 = 1112 • Conversion of the fractional part: perform a repeated multiplication by 2 and extract the integer part of the result 0.75 x 2 =1.50 extract 1 0.5 x 2 = 1.0 extract 1 0.7510 = 0.112 0.0 stop Combine the results from integer and fractional part, 7.7510 = 111.112 How about choose some of Examples: try 5.625B 4 2 1 1/2 1/4 1/8 =0.25 =0.125 =0.5
0.6 x 2 = 1.2 extract 1 • 0.2 x 2 = 0.4 extract 0 • 0.4 x 2 = 0.8 extract 0 • 0.8 x 2 = 1.6 extract 1 • 0.6 x 2 = • (0.6)10= (0.1001 1001 1001 …)2 Fractional Numbers (cont.) Exercise 1: Convert (0.625)10 to its binary form Exercise 2: Convert (0.6)10to its binary form Solution: • Solution: 0.625 x 2 = 1.25 extract 1 • 0.25 x 2 = 0.5 extract 0 • 0.5 x 2 = 1.0 extract 1 • 0.0 stop • (0.625)10= (0.101)2
Fractional Numbers (cont.) • Errors • One source of error in the computations is due to back and forth conversions between decimal and binary formats Example: (0.6)10 + (0.6)10 = 1.210 Since (0.6)10= (0.1001 1001 1001 …)2 Lets assume a 8-bit representation: (0.6)10= (0 .10011001)2 , therefore 0.6 0.10011001 + 0.6 + 0.10011001 1.00110010 Lets reconvert to decimal system: (1.00110010)b = 1 x 20 + 0 x 2-1 + 0 x 2-2 + 1 x 2-3 + 1 x 2-4 + 0 x 2-5 + 0 x 2-6 + 1 x 2-7 + 0 x 2-8 = 1 + 1/8 + 1/16 + 1/128 = 1.1953125 Error = 1.2 – 1.1953125 = 0.0046875
Floating Point Number Representation • If x is a real number then its normal form representation is: x =f•Base E where f : mantissa E: exponent exponent Example: 125.3210 =0.12532•103 mantissa - 125.3210 = - 0.12532 • 103 0.054610 = 0.546 • 10 –1 • The mantissa is normalized, so the digit after the fractional point is non-zero. • If needed the mantissa should be shifted appropriately to make the first digit (after the fractional point) to be non-zero & the exponent is properly adjusted.
Example: 134.1510 = x 10 0.002110 = x 10 101.11B = 0.011B = AB.CDH= 0.00ACH= 3 0.13415 -2 0.21
MSB LSB • Assume we use 16-bit binary pattern for normalized binary form based on the following convention (MSB to LSB) Sign of mantissa (±)= left most bit (where 0: +; 1: - ) Mantissa (f)= next 11 bits Sign of exponent (±)= next bit (where 0: +; 1: - ) Exponent (E) = next three bits x =±f•Base ±E f = 0.?1?2?3?4…?11 ?12…?15 E :converted to binary, b1b2b3 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?10 ?11 b1 b2 b3 + : 0 - : 1 + : 0 - : 1
sign 1 bit mantissa 11 bits sign 1 bit exponent 3 bits Floating Point Number Representation • Question: How the computer expresses the 16-bit approximation of 1110.111010111111 in normalized binary form using the following convention Sign of mantissa = left most bit (where 0: +; 1: - ) Mantissa = next 11 bits Sign of exponent = next bit (where 0: +; 1: - ) Exponent = next three bits Answer: Step 1: Normalization 1110.111010111111 = + 0.1110111010111111 * 2 +4 Step 2: “Plant” 16 bits the 16 bit floating point representation is0111011101010100
Question: Interpret the normalized binary number 0111 0000 0000 1010 B using the convention mentioned Sign of mantissa = left most bit (where 0: +; 1: - ) Mantissa = next 11 bits Sign of exponent = next bit (where 0: +; 1: - ) Exponent = next three bits find its decimal equivalent. Answer: 0111000000001010 B= 0.111B* 2-2
Floating Point Number Representation (cont.) mantissa 24 bits sign 1 bit exponent 7 bits • The 32 Bit Single Precision Floating Point Format for IBM 370 • Base = 16 • Exponent = Excess-64 notation (i.e., compute binary equivalent, then substrate 64) • Sign = sign of number (0: positive, 1: negative) • Mantissa = normalized fraction (i.e. first digital after ‘.’ is non-zero) Example: What is the value of the following point number? 1 100 0010 1001 0011 1101 0111 1100 0010 Sign = 1 the number is negative Exponent (E) = 100 00102 = 6610 = 2 (substrate 64, because of Excess-64 ) Mantissa (f ) = 100100111101011111000010 = 93D7C2H • The above floating point number is: x = (sign) f• 16 E = - 0.93D7C2 • 16 2 x = - (9 x 16-1+ 3x 16-2+Dx 16-3+ 7 x 16-4+ Cx 16-5 +2x 16-6)• 16 2 = - (9 x 161 + 3x 160 +13x 16-1+ 7 x 16-2+ 12x 16-3 +2x 16-4) = - (144+3 +0.8125+0.02734375 + 0.0029296875 + 0.000030517578125) = - 147.842803955078125
Acknowledgements • These slides where originally prepared by Dr. Jeffrey Huang, updated by Dale Roberts.