birkbeck college, u. london1 introduction to computer systems lecturer: steve maybank department of...
TRANSCRIPT
![Page 1: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/1.jpg)
Birkbeck College, U. London 1
Introduction to Computer Systems
Lecturer: Steve Maybank
Department of Computer Science and Information [email protected]
Autumn 2015
Week 3b: Floating Point Notation for Binary Fractions
13 October 2015
![Page 2: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/2.jpg)
Binary Fractions A binary fraction has the form
sign||bit string 1||radix point||bit string 2
E.g. +1.01, -10011.11 The + is usually omitted Digits to the right of the radix point
specify powers of 2 with negative exponents
E.g. 1.01 is13 October 2015 Birkbeck College, U. London 2
![Page 3: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/3.jpg)
Properties of Binary Fractions 1
Multiply by 2: move the radix point one place to the right, e.g.
1.01x2 = 10.1
Divide by 2: move the radix point one place to the left, e.g.
1.02÷2 = 0.101
13 October 2015 Birkbeck College, U. London 3
![Page 4: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/4.jpg)
Properties of Binary Fractions 2
A number can be specified exactly by a binary fraction if and only if it has the form
integer/power of 2 E.g.
1.01 specifies the decimal fraction 5/4
0.0101010101010101…. specifies 1/3
13 October 2015 Birkbeck College, U. London 4
![Page 5: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/5.jpg)
Brookshear, Section 1.7 5
Specification of a Binary Fraction
-101.11001 The binary fraction has three parts:
The sign –The position of the radix pointThe bit string 10111001
13 October 2015
![Page 6: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/6.jpg)
Brookshear, Section 1.7 6
Binary Fraction and Powers of 2
13 October 2015
1 0 1 . 1 1 0 0 1
22 21 20 2-1 2-2 2-3 2-4
2-5
22+20+2-1+2-2+2-5 = 5+(25/32)
![Page 7: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/7.jpg)
Brookshear, Section 1.7 7
Reconstruction of a Binary Fraction
The sign is + The position of the radix point is
just to the right of the second bit from the left
The bit string is 101101 What is the binary fraction?
13 October 2015
![Page 8: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/8.jpg)
13 October 2015 Brookshear, Section 1.7 8
Summary To represent a binary fraction three
pieces of information are needed:
Sign Position of the radix
point Bit string
![Page 9: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/9.jpg)
Spacing Between Numbers
13 October 2015 Birkbeck College, U. London 9
Two’s complement:equally spacednumbers
0
Floating point:big gaps between big numbers,small gaps between small numbers.
0
![Page 10: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/10.jpg)
The Key: Exponents
13 October 2015 Birkbeck College, U. London 10
2-4 232-22-3 2-1 20 2221
1/16 1/8 ¼ ½ 1 2 4 8
-4 -3 -2 -1 0 1 2 3
big gaps between big numberssmall gaps between small numbers
![Page 11: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/11.jpg)
Brookshear, Section 1.7 11
Standard Form for a Binary Fraction
Any non-zero binary fraction can be written in the form
±2r x 0.twhere t is a bit string beginning with 1.
Examples11.001 = +22 x 0.11001
-0.011011 = -2-1 x 0.1101113 October 2015
![Page 12: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/12.jpg)
Brookshear, Section 1.7 12
Floating Point Representation Write a non-zero binary fraction in
the form ± 2r x 0.t Record the sign – bit string s1 Record r – bit string s2 Record t – bit string s3 Output s1||s2||s3
13 October 2015
![Page 13: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/13.jpg)
13 October 2015 Brookshear, Section 1.7 13
Floating Point Notation 8 bit floating point:
s e1 e2 e3 m1 m2 m3 m4
sign exponent mantissa1 bit 3 bits 4 bits radix r bit string t
The exponent is in 3 bit excess notation
![Page 14: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/14.jpg)
13 October 2015 Brookshear, Section 1.7 14
To Find the Floating Point Notation
Write the non-zero number as ± 2r x 0.t
If sign = -1, then s1=1, else s1=0.
s2 = 3 bit excess notation for r.
s3= leftmost four bits of t.
![Page 15: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/15.jpg)
13 October 2015 Birkbeck College, U. London 15
Example b= - 0.00101011101 s=1 b= -2-2 x 0.101011101
exponent = -2, s2 =010 Floating point notation
10101010
![Page 16: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/16.jpg)
13 October 2015 Birkbeck College, U. London 16
Second Example
Floating point notation: 10111100 s1=1, therefore negative. s2 = 011, exponent=-1 s3 = 1100 Binary fraction -0.011 = -3/8
![Page 17: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/17.jpg)
Birkbeck College, U. London 17
Class Examples Find the floating point
representation of the decimal number -1 1/8
Find the decimal number which has the floating point representation
01101101
13 October 2015
![Page 18: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/18.jpg)
13 October 2015 Brookshear, Section 1.7 18
Round-Off Error 2+5/8= 10.101 2 ½ = 10.100 The 8 bit floating point notations
for 2 5/8 and 2 ½ are the same: 01101010
The error in approximating 2+5/8 with 10.100 is round-off error or truncation error.
![Page 19: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/19.jpg)
Floating Point Addition of Numbers x, y
a = floating point number nearest to x
b = floating point number nearest to y
c=a+b z=floating point number nearest to
c z=x@y13 October 2015 Birkbeck College, U. London 19
![Page 20: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/20.jpg)
13 October 2015 Birkbeck College, U. London 20
Examples of Floating Point Addition
2 ½: 01101010 1/8: 00101000 ¼: 00111000 2 ¾: 01101011 2 ½ @(1/8 @ 1/8)=2 ½ @ 1/4=2 ¾ (2 ½ @ 1/8) @ 1/8=2 ½ @ 1/8=2 ½
![Page 21: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/21.jpg)
13 October 2015 Birkbeck College, U. London 21
Round-Off in Decimal and Binary
1/5=0.2 exactly in decimal notation
1/5=0.0011001100110011….. in binary notation
1/5 cannot be represented exactly in binary floating point no matter how many bits are used.
Round-off is unavoidable but it is reduced by using more bits.
![Page 22: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/22.jpg)
Birkbeck College, U. London 22
Floating Point Errors
Overflow: number too large to be represented.
Underflow: number <>0 and too small to be represented.
Invalid operation: e.g. SquareRoot[-1].
See http://en.wikipedia.org/wiki/Floating_point
13 October 2015
![Page 23: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/23.jpg)
Birkbeck College, U. London 23
IEEE Standard for Floating Point Arithmetic
For a general discussion of fp arithmetic seehttp://www.ee.columbia.edu/~marios/matlab/Fall96Cleve.pdf
0 1 … 8 9 … 31
Sign sbit 0
Exponent ebits 1-8
Mantissa mbits 9-31
If 0<e<255, then value = (-1)s x 2e-127 x 1.mIf e=0, s=0, m=0, then value = 0If e=0, s=1, m=0, then value = -0
Single precision, 32 bits.
13 October 2015
![Page 24: Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems sjmaybank@dcs.bbk.ac.uk](https://reader035.vdocument.in/reader035/viewer/2022070413/5697bfc71a28abf838ca7dda/html5/thumbnails/24.jpg)
Numbers in Computing
13 October 2015 Birkbeck College, U. London 24
q = 0.1
The value stored in the memory location q is not 0.1!
E.g. in Python the value stored is
0.1000000000000000055511151231257827021181583404541015625
See https://docs.python.org/2/tutorial/floatingpoint.html