floating point

advertisement
COMPUTER ORGANIZATION
AND ASSEMBLY LANGUAGE
Lecture 7 & 8
Floating Point Representation
Binary Coded Decimal
Course Instructor: Engr. Aisha Danish
Real Numbers


Numbers with fractions
Could be done in pure binary
 1001.1010


Where is the binary point?
Fixed?
 Very

= 24 + 20 +2-1 + 2-3 =9.625
limited
Moving?
 How
do you show where it is?
Floating point




In computing, floating point describes a method of
representing an approximation of a real number in a way
that can support a wide range of values
The numbers are, in general, represented approximately
to a fixed number of significant digits (the significand) and
scaled using an exponent
The term floating point refers to the fact that a
number's radix point (decimal point, or, more commonly in
computers, binary point) can "float"; that is, it can be
placed anywhere relative to the significant digits of the
number
Floating point can be thought of as a computer realization
of scientific notation
How floating-point numbers work?
The idea is to compose a number of two main parts:
 A significand that contains the number’s digits.
 Negative significands represent negative numbers.
 An exponent that says where the decimal (or binary) point
is placed relative to the beginning of the significand.
 Negative exponents represent numbers that are very small
(i.e. close to zero).
Such a format satisfies all the requirements:
 It can represent numbers at widely different magnitudes
(limited by the length of the exponent)
 It provides the same relative accuracy at all magnitudes
(limited by the length of the significand)
Floating Point








A typical 32-bit floating-point format
The leftmost bit stores the sign of the number
The exponent value is stored in the next 8 bits
The representation used is known as a biased representation
A fixed value, called the bias, is subtracted from the field to get the true
exponent value
Typically, the bias equals 2^(k-1)-1where k is the number of bits in the binary
exponent. In this case, the 8-bit field yields the numbers 0 through 255
With a bias of 127(2^7-1), the true exponent values are in the range -127 to
+128
In this example, the base is assumed to be 2
Floating Point Examples
Signs for Floating Point


Mantissa/Significand is stored in 2s compliment
Exponent is in excess or biased notation
 e.g.
Excess (bias) 128 means
 8 bit exponent field
 Pure value range 0-255
 Subtract 127 to get correct value
 Range -127 to +128
Normalization






A normalized number is one in which the most significant
digit of the significand is nonzero
For base 2 representation, a normalized number is
therefore one in which the most significant bit of the
significand is one.
The typical convention is that there is one bit to the left of
the radix point
i.e. exponent is adjusted so that leading bit (MSB) of
mantissa is 1
Since it is always 1 there is no need to store it
(Scientific notation where numbers are normalized to give
a single digit before the decimal point e.g. 3.123 x 103)
IEEE 754




Developed to facilitate the portability of programs
from one processor to another and to encourage the
development of sophisticated, numerically oriented
programs
The standard has been widely adopted and is used
on virtually all contemporary processors and
arithmetic coprocessors
32 and 64 bit standards
8 and 11 bit exponent respectively
IEEE 754 Formats
Required Reading


Stallings Chapter 9
IEEE 754 on IEEE Web site
The 8421 BCD Code

BCD stands for Binary-Coded Decimal.

A BCD number is a four-bit binary group that
represents one of the ten decimal digits 0 through 9.
Example:
Decimal number 4926
4
9
2
6
8421 BCD coded number 0100 1001 0010 0110
QUIZ
Convert the BCD coded number 1000 0111 0001
into decimal.
BCD Coded Number
Decimal Number
1000 0111 0001
8
7
1
QUIZ
Convert the decimal number 350 to its BCD
equivalent.
Decimal Number
BCD Coded Number
3
5
0
0011 0101 0000
Binary Coded Decimal (BCD)

Would it be easy for you if you can replace a
decimal number with an individual binary code?
 Such


as 00011001 = 1910
The 8421 code is a type of BCD to do that.
BCD code provides an excellent interface to binary
systems:
 Keypad
inputs
 Digital readouts
Binary Coded Decimal
Decimal
Digit
BCD
0
1
2
3
4
5
6
7
8
9
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Note: 1010, 1011, 1100, 1101, 1110, and 1111 are INVALID CODE!
ex1: dec-to-BCD
(a)
35
(b)
98
(c)
170
(d)
2469
ex2: BCD-to-dec
(a)
10000110
(b)
001101010001
(c)
1001010001110000
BCD Addition

BCD is a numerical code and can be used in arithmetic
operations. Here is how to add two BCD numbers:
Add the two BCD numbers, using the rules for basic binary
addition.
 If a 4-bit sum is equal to or less than 9, it is a valid BCD
number.
 If a 4-bit sum > 9, or if a carry out of the 4-bit group is
generated it is an invalid result. Add 6 (0110) to a 4-bit sum in
order to skip the six the invalid states and return the code to
8421. If a carry results when 6 is added, simply add the carry
to the next 4-bit group.

BCD Addition

Add the following numbers
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
0011+0100
00100011 + 00010101
10000110 + 00010011
010001010000 + 010000010111
1001 + 0100
1001 + 1001
00010110 + 00010101
01100111 + 01010011
Download