250 likes | 402 Views
Topic 3d Representation of Real Numbers. Introduction to Computer Systems Engineering (CPEG 323). Recap. What can be represented in n bits? Unsigned 0 to 2 n - 1 2’s Complement -2 n-1 to 2 n-1 - 1 BCD 0 to 10 n/4 - 1 But, what about?
E N D
Topic 3d Representation of Real Numbers Introduction to Computer Systems Engineering (CPEG 323) cpeg323-05F\Topic3d-323
Recap • What can be represented in n bits? • Unsigned 0 to 2n - 1 • 2’s Complement -2n-1 to 2n-1 - 1 • BCD 0 to 10n/4 - 1 • But, what about? • very large numbers 9,349,398,989,787,762,244,859,087,678 • very small number 0.0000000000000000000000045691 • rationals 2/3 • Irrationals 2.71828…., 3.1415926….., cpeg323-05F\Topic3d-323
………………. ………………. Conceptual Overview: Finite-precision numbers Positive underflow Negative underflow zero Expressible negative numbers Expressible positive numbers Negative overflow Positive overflow • Is there any “underflow” region in integer representation? • Between two adjacent integer numbers, there is no other integer. cpeg323-05F\Topic3d-323
Representing Real Numbers • How to represent fractional parts to the right of the ``decimal'' point? • A number like 0.12 (i.e., (1/2)10) not represented well by integers 0 or 1! • Two ways to represent real numbers better: • Fixed point • Floating point cpeg323-05F\Topic3d-323
Fixed-Point Data Format 4 2 1 1/2 1/4 1/8 …… 0 S 1 0 0 1 1 . 0 0 0 0 1 0 Sign Integer Fractional hypothetical binary point cpeg323-05F\Topic3d-323
Fixed Point • Pros • Add two reals just by adding the integers • Much less logic than floating point • Faster • Often used in digital signal processing • Cons • The range of numbers is narrow number=400 000 000 000 000 000 000 000 000. 000 It is much more economical to represent as 4*1026 cpeg323-05F\Topic3d-323
Recall Scientific Notation decimal point exponent -23 • Issues: • Arithmetic (+, -, *, / ) • Representation, Normal form • Range and Precision(Determined by?) • Rounding and errors • Exceptions (e.g., divide by zero, overflow, underflow) • Properties 6.02 x 10 Significand radix (base) cpeg323-05F\Topic3d-323
Scientific Notation: Normalized • 12.35 x 10^-9 ? • 1.235 x 10^-8 ? • scientific notation: has a single digit to the left of the decimal point • Normalized scientific notation: such a single digit must be non-zero. cpeg323-05F\Topic3d-323
s exp frac Floating Point Representation • Numerical Form: (–1)s M 2E • Sign bit s determines whether number is negative or positive • Significand M normally a fractional value in range [1.0,2.0). • Exponent E weights value by power of two • Encoding • MSB is sign bit: S=0/1 • exp field encodesE • frac field encodesM cpeg323-05F\Topic3d-323
s exp frac 1 bit 8 bits 23 bits IEEE 754 standard • Three formats: single/double/extended precision (32,64,80 bits). • Single precision: Double precision: see page 192 in P&H book cpeg323-05F\Topic3d-323
IEEE 754 Standard Floating Point Representation • the representation: (–1)s (1+ Fraction) 2E-bias where E is the exponent representation in the exp field • Sign bit s determines whether number is negative or positive • Fraction isnormally a fractional value in range between 0 and 1 • A leading 1 added to the fraction is “implicit” • Exponent using a “biased” notation • For single precision – the bias is 127 cpeg323-05F\Topic3d-323
Advantage of using the biased notation for exponents • Under the single-precision IEEE 754 standard: bias = 127 • If the real exponent is +1, what is the biased exponent ? • How about if the real exponent is -1 ? Answer: 1+127 = 128! (Note 128-127 = +1!) Answer: -1+127 = 126! (Note 126-127 = -1!) How about if the real exponent is -127 ? cpeg323-05F\Topic3d-323
Normalized Encoding Example • Value: Float F = 15213.010; 1521310 = 1.1101101101101 X 213 • Significand M = 1.1101101101101 frac = 11011011011010000000000 (23 bits! With leading 1 hiding!) • Exponent E = 1310, Bias = 12710 Exp = 14010 = 10001100 Floating Point Representation: Binary:01000110011011011011010000000000 exp frac cpeg323-05F\Topic3d-323
Denormalized Values • Condition • exp = 000…0 • Significand value M =0.xxx…x • xxx…x: bits of frac • Cases • frac = 000…0 • Represents value 0 • Note that have distinct values +0 and –0 • frac000…0 • Numbers very close to 0.0 • Lose precision as get smaller • “Gradual underflow” cpeg323-05F\Topic3d-323
Special Values • Condition • exp = 111…1 • (infinity) • Operation that overflows • Both positive and negative • E.g., 1.0/0.0 = 1.0/0.0 = +, 1.0/0.0 = • Not-a-Number (NaN) • Represents case when no numeric value can be determined • E.g., sqrt(–1), cpeg323-05F\Topic3d-323
IEEE 754: Summary Normalized: Denormalized: zero: Infinite: NaN: cpeg323-05F\Topic3d-323
IEEE754: Summary (Cont.) + -Normalized +Normalized -Denorm +Denorm NaN 0 NaN +0 Negative overflow Positive underflow Positive overflow Negative underflow cpeg323-05F\Topic3d-323
Special Properties of Encoding • FP Zero Same as Integer Zero • All bits = 0 • Can (Almost) Use Unsigned Integer Comparison • Must first compare sign bits • Must consider -0 = 0 • NaNs problematic • Will be greater than any other values • Otherwise OK • Denorm vs. normalized • Normalized vs. infinity cpeg323-05F\Topic3d-323
E1–E2 • (–1)s2 M2 + • (–1)s M FP Addition • Operands (–1)s1 M1 2E1 (–1)s2 M2 2E2 • Assume E1 > E2 • Exact Result: (–1)s M 2E • Exponent E: E1 • Sign s, significand M: Result of signed align & add • (–1)s1 M1 cpeg323-05F\Topic3d-323
Decimal Number Conversion • Convert Binary to Decimal (base 2 to base 10) x x x x x. d d d d d d …2 24 23 22 21 20 2-1 2-2 2-3 2-4 2-5 2-6 … … 1101.0112 = 1*23+1*22+0*21+1*20+0*2-1+1*2-2+1*2-3 = 13.37510 cpeg323-05F\Topic3d-323
Decimal Number Conversion (Cont.) • Convert Decimal Integer to binary Integer divide the decimal value by 2 and then write down the remainder from bottom to top (Divide 2 and Get the Remainders) 3710 = ?2 Quotient reminder 37÷2 = 18 … 1 18÷2 = 9 … 0 9÷2 = 4 … 1 4÷2 = 2 … 0 2÷2= 1 … 0 1÷2 = 0 … 1 1001012 Can it always be converted into an accurate binary number? YES! cpeg323-05F\Topic3d-323
Decimal Number Conversion (Cont.) • Convert Decimal Fraction to Binary Fraction multiply the decimal value by 2 and then write down the integer number from top to bottom (Multiply 2 and Get the Integers) . 0.37510 = ?2 .375 * 2 = 0.75 .75 * 2 = 1.5 .5 * 2 = 1.0 Where to put the binary point? Prior to the First number! 0.0112 Can it always be converted into an accurate binary number? NO! cpeg323-05F\Topic3d-323
Decimal Number Conversion (Cont.) • Convert Decimal Number to Binary Binary Put Together: Integer Part . Fraction Part 37.37510 = 100101.011 cpeg323-05F\Topic3d-323
Summary • Computer arithmetic is constrained by limited precision • Bit patterns have no inherent meaning but standards do exist • two’s complement • IEEE 754 floating point • OPcode determines “meaning” of the bit patterns • Performance and accuracy are important so there are many complexities in real machines (i.e., algorithms and implementation). cpeg323-05F\Topic3d-323
s E fraction IEEE 754 Floating point Review (1)Normalized scientific notation (-1)ssignificand*2exp (2) IEEE 754 Representation (-1)s(1+fraction)*2E-bias E = exp+bias (127) cpeg323-05F\Topic3d-323