Week-03.2

advertisement
Dale & Lewis Chapter 3
Data Representation
Representing Real numbers
• Need to represent numbers such as 0.543 or -17.45
• The decimal system uses the “decimal point”
• Remember the definition of a number system, but
extended to negative exponents
dn-1 x bn-1 + dn-2 x bn-2 + … + d2 x b2 + d1 x b1 + d0 x b0
+ d-1 x b-1 + d-2 x b-2 + …
• So 0.543 is 0 x 100 + 5 x 10-1 + 4 x 10-2 + 3 x 10-3
• The decimal point position delimits where the exponents
become negative
Conversion from binary to decimal
• Use the definition of a number in a positional number
system with base 2
• Evaluate the formula using decimal arithmetic
• Example
10.1011 = 1 x 21 + 0 x 20 + 1 x 2-1 + 0 x 2-2 + 1 x 2-3 +
1 x 2-4
= 2 + 0.5 + 0.125 + 0.0625 = 2.6875
• Generalizing, the “decimal point” is called radix point in
non-decimal number systems
Conversion from decimal to binary
• Integer part: convert separately, as done before
• Fractional part:
− Repeatedly multiply by 2
− Integer part is the next digit
− Fraction is developed left to right
• Example: convert 3.14579 to binary
• Integer part is 11
.14579 x 2 = 0.29158
.0
.29158 x 2 = 0.58316
.00
.58316 x 2 = 1.16632
.001
.16632 x 2 = 0.33264
.0010
etc...
3.14579 in binary is 11.0010…
Rounding errors
• Try representing .1 (decimal) into binary
• How would one represent fractions with base 5 or 3?
• Infinite sequences, a computer with fixed number of bits
will make an approximation in the representation
• Needs to be taken into account, or it will lead to rounding
errors  Patriot missile system
Floating point numbers
• Real numbers are represented using a concept inherited from
scientific notation
• Scientific notation is a way of writing numbers that are too big
or too small to be conveniently written in decimal form
• The following all represent +1234.56
+123456.0
+12345.6
+1234.56
+123.456
+12.3456
+1.23456
+0.123456
+0.0123456
x10-2
x10-1
x100
x101
x102
x103
x104  standard representation
x105
Floating point numbers
• The representations differ in that the decimal point “floats”
to the left or right by adjusting the exponent
• Any real number x can be written as
x = ±f x be
where b > 1 is the base, e is an integer for the exponent,
and the fraction is 1/b ≤ f < 1 (normalized)
• We know how to express each part in binary, but
convention for the integer e uses Excess notation
Excess notation
• Another way to express integers (we’ve seen signmagnitude and two’s complement)
• This shifts the list of numbers represented by bits to
include negative numbers, with 10…0 representing 0
• Convert binary excess-n to decimal: (binary value)-n
− Example for excess-8: 0101  5-8 = -3
• Convert decimal to binary excess-n: (decimal value)+n
− Example for excess-8: 6  6+8 = 1110
Excess notation
Floating point numbers in binary
• An example for “single precision” binary floating point
number (32 bits)
− S is the sign: 0  positive, 1  negative
− E is the exponent (here in 8 bits, 256 values, excess-128
notation)
− M is the manitssa (fractional part) has an implicit radix point
at the beginning (here 23 bits, 8,388,608 values)
SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM
10010100101010011101001010001101
is -.01010011101001010001101 x 2-87
Floating point number examples
• Using 8-bit floating point representation (SEEEMMMM)
− Convert 3.14579 to binary
3.14579 = 11.0010…
11.0010… x 20
.110010… x 2+2
 01101101 (rounded)
− Convert 0.1 to binary
0.1 = 0.0001100110011…
.0001100110011… x 20
.1100110011… x 2-3

00011101 (rounded)
Download