Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Infinitesimal wikipedia , lookup
Bra–ket notation wikipedia , lookup
Abuse of notation wikipedia , lookup
Real number wikipedia , lookup
Musical notation wikipedia , lookup
History of mathematical notation wikipedia , lookup
Big O notation wikipedia , lookup
Approximations of π wikipedia , lookup
Large numbers wikipedia , lookup
Location arithmetic wikipedia , lookup
Topic 3d Representation of Real Numbers Introduction to Computer Systems Engineering (CPEG 323) 2017/5/24 cpeg323-08F\Topic3d-323 1 Recap What can be represented in n bits? Unsigned 2’s Complement BCD 0 -2n-1 0 to to to 2n - 1 2n-1 - 1 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….., 2 2017/5/24 cpeg323-08F\Topic3d-323 2 Conceptual Overview: Finite-precision numbers Negative Positive underflow underflow Negative overflow Expressible negative numbers zero ………………. Expressible positive numbers Positive overflow ………………. • Is there any “underflow” region in integer representation? • Between two adjacent integer numbers, there is no other integer. 2017/5/24 cpeg323-08F\Topic3d-323 3 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: 2017/5/24 Fixed point Floating point cpeg323-08F\Topic3d-323 4 Fixed-Point Data Format 4 2 1 1/2 …… S Sign 1 0 0 Integer 0 1 1 . 0 0 1/4 0 1/8 0 1 0 Fractional hypothetical binary point 2017/5/24 cpeg323-08F\Topic3d-323 5 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 2017/5/24 cpeg323-08F\Topic3d-323 6 Recall Scientific Notation decimal point exponent -23 6.02 x 10 Significand radix (base) Issues: Arithmetic (+, -, *, / ) Representation, Normal form Range and Precision(Determined by?) Rounding and errors Exceptions (e.g., divide by zero, overflow, underflow) Properties 2017/5/24 cpeg323-08F\Topic3d-323 7 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. 2017/5/24 cpeg323-08F\Topic3d-323 8 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 s exp MSB is sign bit: S=0/1 exp field encodes E frac field encodes M 2017/5/24 cpeg323-08F\Topic3d-323 frac 9 IEEE 754 standard Three formats: single/double/extended precision (32,64,80 bits). Single precision: s exp 1 bit 8 bits frac 23 bits Double precision: see page 192 in P&H book 2017/5/24 cpeg323-08F\Topic3d-323 10 IEEE 754 Standard Floating Point Representation the representation: (–1)s (1+ Fraction) 2E-bias where E is the exponent part in the notation Sign bit s determines whether number is negative or positive Fraction is normally 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 That is, when you convert the notation to the number it represents, the exponential part used should be reading E out from the IEEE 754 notation, and calculated as E-127. 2017/5/24 cpeg323-08F\Topic3d-323 11 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 ? Answer: 1+127 = 128! (Note 128-127 = +1!) How about if the real exponent is -1 ? Answer: -1+127 = 126! (Note 126-127 = -1!) How about if the real exponent is -127 ? E -127 = -127, then E = ? 2017/5/24 cpeg323-08F\Topic3d-323 12 Observations Using biased notation, the exponential part in the single-precision IEEE 754 notation itself never get nagative. 2017/5/24 cpeg323-08F\Topic3d-323 13 Normalized Encoding Example Value: Float F = 15213.010; 1521310 = 1.1101101101101 X 213 Significand M = 1.1101101101101 = 11011011011010000000000 (23 bits! With leading 1 hiding!) frac Exponent E = Exp = 1310, Bias = 12710 14010 = 10001100 Floating Point Representation: Binary:01000110011011011011010000000000 exp 2017/5/24 frac cpeg323-08F\Topic3d-323 14 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 frac 000…0 Numbers very close to 0.0 Lose precision as get smaller “Gradual underflow” 2017/5/24 cpeg323-08F\Topic3d-323 15 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) 2017/5/24 Represents case when no numeric value can be determined E.g., sqrt(–1), cpeg323-08F\Topic3d-323 16 IEEE 754: Summary Normalized: ± 0<exp<max Any bit pattern Denormalized: ± 0 Any nonzero bit pattern zero: ± 0 0 Infinite: ± 11…1 0 NaN: ± 11…1 Any nonzero bit pattern 2017/5/24 cpeg323-08F\Topic3d-323 17 IEEE754: Summary (Cont.) -Normalized -Denorm NaN Negative overflow 2017/5/24 +Denorm +Normalized + NaN 0 +0 Negative underflow cpeg323-08F\Topic3d-323 Positive underflow Positive overflow 18 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 E1–E2 (–1)s1 M1 (–1)s2 M2 + (–1)s M 2017/5/24 cpeg323-08F\Topic3d-323 19 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 2017/5/24 cpeg323-08F\Topic3d-323 20 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? 2017/5/24 YES! cpeg323-08F\Topic3d-323 21 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 = .75 * 2 = .5 * 2 = 0.75 1.5 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? 2017/5/24 NO! cpeg323-08F\Topic3d-323 22 Decimal Number Conversion (Cont.) Convert Decimal Number to Binary Binary Put Together: Integer Part . Fraction Part 37.37510 = 100101.011 2017/5/24 cpeg323-08F\Topic3d-323 23 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). 2017/5/24 cpeg323-08F\Topic3d-323 24