1
00:00:11,610 --> 00:00:16,119
all right so now we have taken a look at boolean
algebra which is the manipulation of bits
2
00:00:16,119 --> 00:00:21,970
we have taken a look at how positive integers
are represented in binary how negative integers
3
00:00:21,970 --> 00:00:27,310
are represented in binary so let me maybe
just summarize ah at this point so we have
4
00:00:27,310 --> 00:00:30,200
for a quick recap boolean algebra had to do
with boolean variables so each variable could
5
00:00:30,200 --> 00:00:37,680
take a number between ah sorry not between
a number which is either zero or one and we
6
00:00:37,680 --> 00:00:41,930
defined basic operations on boolean variables
such as the and operation which means that
7
00:00:41,930 --> 00:00:56,519
the and function is true only when both the
variables or all the variables involved in
8
00:00:56,519 --> 00:01:04,400
and operation all of them are one and the
or operation is correct only when is true
9
00:01:04,400 --> 00:01:13,480
only when one of the variables is one then
we define a not operation that's a compliment
10
00:01:13,480 --> 00:01:22,150
and we define an xor operation which is one
when one is zero and other is one
11
00:01:22,150 --> 00:01:27,880
then we define the binary system to represent
positive integers with different basis so
12
00:01:27,880 --> 00:01:32,930
the important point to recapitulate you know
for ah at this point of the lecture is that
13
00:01:32,930 --> 00:01:39,940
what is the relationship between binary between
octal which is base eight and between hex
14
00:01:39,940 --> 00:01:46,409
which is hexadecimal which is base sixteen
and the important result that we had proved
15
00:01:46,409 --> 00:01:53,120
is that the octal and hexadecimal notations
can be thought as short forms you know abbreviations
16
00:01:53,120 --> 00:01:59,830
or reduced representations of a binary representation
so what do we do for example in base sixteen
17
00:01:59,830 --> 00:02:08,179
we this group blocks of four binary numbers
and ah represent them with one base sixteen
18
00:02:08,179 --> 00:02:11,709
number for example a number of this form right
which is can be represented as this becomes
19
00:02:11,709 --> 00:02:20,030
one and this is actually eight plus three
eleven which is d right so the instead of
20
00:02:20,030 --> 00:02:24,739
having eight digits you only have two digits
then we represented negative integers we looked
21
00:02:24,739 --> 00:02:31,210
at different methods of representation one
is a sign magnitude representation which has
22
00:02:31,210 --> 00:02:39,000
a sign bit the problem there was that performing
arithmetic operations was difficult and there
23
00:02:39,000 --> 00:02:44,260
were two representations was zero the other
is once complement same problems two representations
24
00:02:44,260 --> 00:02:50,230
the other was with a bias so in with a bias
we had a single representation for every number
25
00:02:50,230 --> 00:02:58,040
but even addition and ah subtraction were
relatively easier but multiplication was hard
26
00:02:58,040 --> 00:03:03,480
so that's the reason we introduced twos complement
where ah essentially the twos complement of
27
00:03:03,480 --> 00:03:09,620
a positive number is the number itself and
a twos complement of a negative number is
28
00:03:09,620 --> 00:03:13,250
two to the power n minus u the fantastic thing
about this number system is yes it preserves
29
00:03:13,250 --> 00:03:18,110
a notion of the sign bit its easy to find
if a number is positive or negative just take
30
00:03:18,110 --> 00:03:25,670
a look at the m s b there is one representation
for zero and all other numbers and performing
31
00:03:25,670 --> 00:03:29,420
addition subtraction and multiplication is
simply as simple as take the unsigned representations
32
00:03:29,420 --> 00:03:36,420
of the numbers and add subtract and multiply
them the last n bits of the result are ah
33
00:03:36,420 --> 00:03:43,170
the representation of ah the last n bits of
the result ah are actually the representation
34
00:03:43,170 --> 00:03:46,860
of what the actual result should have been
right
35
00:03:46,860 --> 00:03:54,000
and similarly ah sorry ah so so then we discussed
some properties of this numbers system which
36
00:03:54,000 --> 00:03:58,460
is ah when what are the conditions for an
overflow that's very important and we also
37
00:03:58,460 --> 00:04:03,819
discussed ah the issues of sign extension
which is that when you convert a number from
38
00:04:03,819 --> 00:04:11,390
one ah you know from an n bit system to an
n bit system where m is greater than n what
39
00:04:11,390 --> 00:04:15,709
do you need to do
now let's discuss floating point numbers which
40
00:04:15,709 --> 00:04:19,510
are numbers the decimal point so what is the
floating point number is any number with a
41
00:04:19,510 --> 00:04:26,150
decimal point inside it like two point three
five six or one point three times ah ten to
42
00:04:26,150 --> 00:04:31,750
power minus ten so now the question is the
moment we say that a number is a floating
43
00:04:31,750 --> 00:04:35,060
point number we need to answer the question
what is the fixed point number [noises] so
44
00:04:35,060 --> 00:04:39,560
in in a fixed point number the number of digits
after the decimal point is fixed so it ah
45
00:04:39,560 --> 00:04:43,710
so one example of a such a number is three
point two nine so any number representing
46
00:04:43,710 --> 00:04:45,990
let's say currency is a fixed point number
the number of digits after the decimal point
47
00:04:45,990 --> 00:04:49,680
is fixed
so what is the generic form of a number in
48
00:04:49,680 --> 00:04:55,330
base ten if we consider just positives numbers
ah if we just consider positives numbers the
49
00:04:55,330 --> 00:05:02,159
generic form of a number in base ten is three
times ten to the power zero which is three
50
00:05:02,159 --> 00:05:09,340
plus you know two ah point two which is two
times ten to the power minus one plus point
51
00:05:09,340 --> 00:05:17,250
zero nine which is nine times ten to the power
minus two say any generic form is a form of
52
00:05:17,250 --> 00:05:23,369
this type where we ah make a summation from
a minus n to a plus m or plus n where we are
53
00:05:23,369 --> 00:05:27,580
essentially adding powers of ten with a coefficient
so in this case the coefficient is two and
54
00:05:27,580 --> 00:05:34,289
nine and three and so on
so what would a generic form of a number being
55
00:05:34,289 --> 00:05:41,520
base two all that we can do is that we can
take ten and replace it with two so let's
56
00:05:41,520 --> 00:05:44,399
take some simple numbers and expand them in
this notation so let's say point three seven
57
00:05:44,399 --> 00:05:48,599
five is two to the power minus two plus two
to the power minus three a number like one
58
00:05:48,599 --> 00:05:55,199
point five is two to the power zero plus two
to the power minus one a number of the form
59
00:05:55,199 --> 00:06:01,629
seventeen point six to five is this representation
as shown over here two to the power four plus
60
00:06:01,629 --> 00:06:12,169
two to the power zero plus two to the power
minus one plus two to the power minus three
61
00:06:12,169 --> 00:06:18,419
so if we can use base ten to represent all
floating point numbers right all decimal numbers
62
00:06:18,419 --> 00:06:25,319
like the value of pi n e n and even a number
like five point three six times ten to the
63
00:06:25,319 --> 00:06:29,589
power minus seventeen nothing stops us mathematically
to replace base ten by base two
64
00:06:29,589 --> 00:06:37,819
so what do we do we take the base two representation
of a floating point ah number so what we have
65
00:06:37,819 --> 00:06:44,270
done here is that we have replaced four i
am sorry replaced base ten by base two everywhere
66
00:06:44,270 --> 00:06:48,919
just one small correction here this should
have actually been minus three so we have
67
00:06:48,919 --> 00:06:54,119
replaced base two by base ten everywhere and
ah so as i said if you go to a planet where
68
00:06:54,119 --> 00:06:59,409
people have only two fingers they would use
base two they would not use base ten and a
69
00:06:59,409 --> 00:07:04,059
pretty much any base ten number has an equivalent
base two expression which is an expression
70
00:07:04,059 --> 00:07:10,089
of this form which is just a binary representation
of the number ah from base ten to base two
71
00:07:10,089 --> 00:07:16,969
and so if you consider one zero point one
one in decimal this would be two plus point
72
00:07:16,969 --> 00:07:24,639
one is two to the power minus one which is
point five plus point two five which is two
73
00:07:24,639 --> 00:07:32,559
plus point seven five or two point seven five
so this gives us a very easy way to at least
74
00:07:32,559 --> 00:07:37,933
represent positive numbers with ah in a by
just simply extending the logic and instead
75
00:07:37,933 --> 00:07:42,729
of ah a base ten using base two so let us
now create a standard form of all floating
76
00:07:42,729 --> 00:07:46,520
point numbers so in this case we will use
the sign magnitude representation because
77
00:07:46,520 --> 00:07:50,199
otherwise that will become too complicated
so any number a can be represented as minus
78
00:07:50,199 --> 00:07:58,439
one to the power s where s is a sign bit if
s is zero then minus one to the power s is
79
00:07:58,439 --> 00:08:07,189
one and if s is plus one which means the number
is negative minus one to the power one is
80
00:08:07,189 --> 00:08:12,479
minus one so number becomes negative then
we can define p which is a significand so
81
00:08:12,479 --> 00:08:15,879
the significand is typically a number between
one and two in this case not typically it
82
00:08:15,879 --> 00:08:20,439
is a number between one and two
ah so we can represent the significand as
83
00:08:20,439 --> 00:08:24,020
a number as one plus m so zero is less than
equal to m and m is less than one multiplied
84
00:08:24,020 --> 00:08:32,360
by ah two to the power x where x is an integer
right so so x is element of z which is the
85
00:08:32,360 --> 00:08:38,860
set of integers and the significand sub celestials
go over this terminology once again is very
86
00:08:38,860 --> 00:08:46,110
important say any floating point number we
are representing as minus one to the power
87
00:08:46,110 --> 00:08:51,870
s where s is the sign bit multiplied by the
significand the significand is the number
88
00:08:51,870 --> 00:09:00,370
of the form one plus m where m is strictly
less than one and it's positive m is called
89
00:09:00,370 --> 00:09:06,819
the mantissa right so the m is given a name
and the name of the number ah the name of
90
00:09:06,819 --> 00:09:14,100
this term is the mantissa multiplied by two
to the power x where x is the exponent and
91
00:09:14,100 --> 00:09:20,060
ah x is an integer
so as we see any numbers can be represented
92
00:09:20,060 --> 00:09:27,250
in this form there's absolutely no problem
like a number of the form two point six can
93
00:09:27,250 --> 00:09:35,339
be represented as minus one to the power zero
multiplied by one point three multiplied by
94
00:09:35,339 --> 00:09:41,250
two to the power one where one point three
is a significand which is one plus point three
95
00:09:41,250 --> 00:09:48,350
where point three is the mantissa so this
is also called the normal form or the normalized
96
00:09:48,350 --> 00:09:52,060
form
so let's see some examples at least in decimal
97
00:09:52,060 --> 00:09:56,130
we will go to binary later so one point three
eight seven times ten to the power minus twenty
98
00:09:56,130 --> 00:10:01,639
three so the significand is one point three
eight two seven mantissa is point three eight
99
00:10:01,639 --> 00:10:07,160
two seven since we consider in decimal instead
of base two it's base ten so the exponent
100
00:10:07,160 --> 00:10:09,830
is minus twenty three and the sign bit is
zero
101
00:10:09,830 --> 00:10:14,930
similarly one point two times ten to the power
five the significand is one point two mantissa
102
00:10:14,930 --> 00:10:22,629
is point two the sign bit is one which means
is minus one to the power one at the leftmost
103
00:10:22,629 --> 00:10:32,290
point and the exponent is plus five so let's
now take a look at the i triple e seven fifty
104
00:10:32,290 --> 00:10:38,240
four format for representing floating point
numbers and take a look at the general principles
105
00:10:38,240 --> 00:10:42,279
so the significand should be of the form one
point something
106
00:10:42,279 --> 00:10:49,769
so there see if you think about it if we have
thirty two bits so this is a thirty two bit
107
00:10:49,769 --> 00:10:57,970
number system if we think about it if every
number significand is one point something
108
00:10:57,970 --> 00:11:05,819
right there is no need to waste one bit representing
that one we can assume it as the default that
109
00:11:05,819 --> 00:11:11,699
is always there we just need to save the mantissa
bits right for example if a number is one
110
00:11:11,699 --> 00:11:17,199
point three eight four we just need to save
three eight four right need a binary representation
111
00:11:17,199 --> 00:11:19,134
for three eight four we can automatically
assume that one is inside is in there
112
00:11:19,134 --> 00:11:27,770
we also need to store the sign bit s and the
exponent x so the i triple e seven fifty four
113
00:11:27,770 --> 00:11:44,139
format is something like this it's a thirty
two bit format the m s b is for the sign bit
114
00:11:44,139 --> 00:11:50,720
where we use one bit for the sign bit or we
use eight bits for the exponent which means
115
00:11:50,720 --> 00:11:58,660
it can take two fifty six values and we use
twenty three bits for the mantissa
116
00:11:58,660 --> 00:12:09,509
so let's now take a look at the representation
of the exponent so the exponent uses the biased
117
00:12:09,509 --> 00:12:14,689
representation in the sense that if the exponent
is equal to x then we actually saves x plus
118
00:12:14,689 --> 00:12:21,220
the bias ah so in this case it allows us to
represent negative exponents as well so we
119
00:12:21,220 --> 00:12:25,829
can actually rep represent exponents in the
range of minus one one twenty seven to plus
120
00:12:25,829 --> 00:12:30,630
one twenty eight right so since the bias is
hundred twenty seven what we actually save
121
00:12:30,630 --> 00:12:37,279
in this case is zero till two fifty five which
is a total of two hundred and fifty six numbers
122
00:12:37,279 --> 00:12:41,980
so what was the need for having a biased representation
over here well the need was that the exponent
123
00:12:41,980 --> 00:12:46,779
can be positive or the exponent can be negative
hence we need to have some kind of a representation
124
00:12:46,779 --> 00:12:52,430
twos complement was found to be ah bit too
complicated and it was also not required because
125
00:12:52,430 --> 00:12:55,640
typically in floating point numbers we don't
multiply the exponent with some other number
126
00:12:55,640 --> 00:12:57,790
most of the time you only add and subtract
the exponents in that case it was not necessary
127
00:12:57,790 --> 00:13:00,680
to go for something as heavy weight as twos
complement the biased representation was found
128
00:13:00,680 --> 00:13:06,069
to be nice and simple
so as i said ah so let's consider some examples
129
00:13:06,069 --> 00:13:13,220
the exponent is zero we sa actually save hundred
twenty seven if the exponent is minus twenty
130
00:13:13,220 --> 00:13:19,860
three we save minus twenty three plus one
twenty seven which is hundred four last example
131
00:13:19,860 --> 00:13:22,920
is the exponent plus thirty we save hundred
and fifty seven so what are the different
132
00:13:22,920 --> 00:13:26,390
fields once again the one bit sign bit is
there after that we have eight bits and the
133
00:13:26,390 --> 00:13:33,480
eight bits are for the exponent but the exponent
is actually x it's representation is e and
134
00:13:33,480 --> 00:13:38,110
what is the relationship between e and x we
are saving e where e is equal to x plus the
135
00:13:38,110 --> 00:13:45,170
bias so whatever is a real exponent we add
one twenty seven to it and we save it in this
136
00:13:45,170 --> 00:13:48,589
particular number system
now let's con consider normal floating point
137
00:13:48,589 --> 00:13:53,180
numbers in the i triple e seven fifty four
format so i triple e by the way is is the
138
00:13:53,180 --> 00:13:54,360
institute is an association of electrical
and electronics engineers so they i triple
139
00:13:54,360 --> 00:13:56,750
e typically makes standards and formats for
representing a variety of information in this
140
00:13:56,750 --> 00:14:02,999
case the seven fifty four format has been
made seven fifty four standard has been made
141
00:14:02,999 --> 00:14:07,129
to represent floating point numbers in binary
so normal binary numbers have an exponent
142
00:14:07,129 --> 00:14:12,920
between minus one twenty six and plus one
twenty seven so the other exponents which
143
00:14:12,920 --> 00:14:17,190
can be represented minus one twenty seven
and plus one twenty eight are reserved for
144
00:14:17,190 --> 00:14:19,379
special purposes so which we will discuss
later
145
00:14:19,379 --> 00:14:26,680
so now the standard form or the normal form
of an floating point number in i triple e
146
00:14:26,680 --> 00:14:34,029
seven fifty four format is exactly what we
had seen before and with a little bit of modification
147
00:14:34,029 --> 00:14:42,220
so we have the sign bit minus one to the power
s multiplied with the significand where the
148
00:14:42,220 --> 00:14:45,839
significand is of the form one plus m m being
the mantissa strictly less than one multiplied
149
00:14:45,839 --> 00:14:49,800
by two to the power e minus bias where e is
the representation of the ah exponent ah so
150
00:14:49,800 --> 00:14:54,259
e is between one and two fifty four right
ah so the values of zero and two fifty five
151
00:14:54,259 --> 00:14:58,459
are reserved for special purposes
so here is the food for thought what is the
152
00:14:58,459 --> 00:15:03,350
largest positive normal floating point number
what is the smallest negative normal floating
153
00:15:03,350 --> 00:15:10,129
point number i will not answer them but i
have kept them as exercises for the reader
154
00:15:10,129 --> 00:15:18,100
and the answers are in the book so let's now
take a look at some of the special values
155
00:15:18,100 --> 00:15:24,999
for the floating point numbers so in this
case so if you would recall the valid values
156
00:15:24,999 --> 00:15:29,370
of e are e actually has to be in the range
of one and two hundred fifty four right so
157
00:15:29,370 --> 00:15:31,540
the other the values that we are excluding
as zero and two fifty five which basically
158
00:15:31,540 --> 00:15:35,079
means that exponents with a value of minus
one twenty seven or plus one twenty eight
159
00:15:35,079 --> 00:15:36,100
are not allowed
so if they are not allowed what does it mean
160
00:15:36,100 --> 00:15:37,350
it means that we are using these values for
denoting something special all right so what
161
00:15:37,350 --> 00:15:38,350
should it be what it should be is something
like this that if e is equal to two fifty
162
00:15:38,350 --> 00:15:39,350
five and the mantissa is zero let us treat
this number as positive infinity plus infinity
163
00:15:39,350 --> 00:15:40,350
if the sign bit is zero if e is two fifty
five the mantissa is zero and ah let's treat
164
00:15:40,350 --> 00:15:41,439
another sign bit is one let's treat this number
is minus infinity so let's give an example
165
00:15:41,439 --> 00:15:43,899
one divided by zero is plus infinity and minus
one divided by zero is negative infinity and
166
00:15:43,899 --> 00:15:49,540
infinity is represented with the fact that
e is two fifty five and m is zero
167
00:15:49,540 --> 00:15:51,920
now let's consider the case the third case
where is two fifty five and m is not equal
168
00:15:51,920 --> 00:15:57,040
to zero so there can be many such values but
we say that all of these values represent
169
00:15:57,040 --> 00:16:01,149
an nan for an nan is an not a number for examples
what is zero by zero zero by zero is undefined
170
00:16:01,149 --> 00:16:03,641
so we treat this case as a nan or ah what
is log of minus one log of minus one is undefined
171
00:16:03,641 --> 00:16:04,641
so let's again treated as a nan or sin inverse
of five a sin inverse of ten it is undefined
172
00:16:04,641 --> 00:16:07,110
so we treat this as an nan any arithmetic
expression that has an nan will always evaluate
173
00:16:07,110 --> 00:16:10,110
to nan so nan plus nan is equal to nan nan
minus nan is equal to nan nan plus any other
174
00:16:10,110 --> 00:16:13,709
number is equal to nan so the moment any part
of an expression evaluates to not a number
175
00:16:13,709 --> 00:16:15,249
the entire expression will evaluate to not
a number
176
00:16:15,249 --> 00:16:16,249
so in this ah in the i triple e format we
sadly have two representations for zero which
177
00:16:16,249 --> 00:16:21,399
is not desirable but this is still there so
in this case if e is equal to zero which is
178
00:16:21,399 --> 00:16:27,410
one of the special cases that we had excluded
if e is zero and the mantissa is zero then
179
00:16:27,410 --> 00:16:30,100
the value is zero so of course there are two
representations are sign bit can either be
180
00:16:30,100 --> 00:16:31,100
zero or the sign bit can be one we thus have
two representations for zero in this particular
181
00:16:31,100 --> 00:16:32,100
number system which is not something that
we can did ah which is not much that we can
182
00:16:32,100 --> 00:16:33,100
do so ah the sign bit can be zero or one but
then the e field has to be all zeroes to represent
183
00:16:33,100 --> 00:16:34,569
a zero and the mantissa field also has to
be all zeros and a sign bit can either be
184
00:16:34,569 --> 00:16:38,810
zero and one it does not matter it will still
be in a both the variants will be treated
185
00:16:38,810 --> 00:16:40,184
as a zero
the last subclass is very interesting is called
186
00:16:40,184 --> 00:16:42,189
a denormal number so we will discuss this
in later slides in this case e is equal to
187
00:16:42,189 --> 00:16:43,809
zero but m is not equal to zero so we will
discuss this case in the next few slides so
188
00:16:43,809 --> 00:16:46,040
let's ah but before going to denormal numbers
i just wanted to give an example of how we
189
00:16:46,040 --> 00:16:48,850
would represent a floating point number so
let's maybe consider a number of the form
190
00:16:48,850 --> 00:16:49,850
minus one point ah let's consider number of
form minus three so minus three the first
191
00:16:49,850 --> 00:16:50,889
thing would be to reduce it to standard form
right or a normal form which is minus one
192
00:16:50,889 --> 00:16:54,420
to the power one multiplied with one point
five multiplied with two to the power one
193
00:16:54,420 --> 00:16:56,620
so this is equal to minus one to the power
one multiplied with one plus point five where
194
00:16:56,620 --> 00:16:57,620
point five is the mantissa multiplied with
two to the power one twenty eight minus one
195
00:16:57,620 --> 00:16:58,620
twenty seven the one twenty seven is a bias
so now if i consider the representation of
196
00:16:58,620 --> 00:16:59,620
this number in binary then the sign bit will
be equal to one because the number is negative
197
00:16:59,620 --> 00:17:00,620
the exponent right the e field will actually
be equal to plus one twenty eight because
198
00:17:00,620 --> 00:17:01,620
we are we have we are subtracting the bias
minus one twenty seven to get one so this
199
00:17:01,620 --> 00:17:02,620
is e minus bias right for one twenty seven
is the bias so e is plus one twenty eight
200
00:17:02,620 --> 00:17:03,620
so let us have the binary representation of
hundred and twenty eight and the binary representation
201
00:17:03,620 --> 00:17:04,620
of that would essentially be one and seven
zeros
202
00:17:04,620 --> 00:17:05,620
now let's come to the mantissa so the mantissa
part is point five so point five if ah if
203
00:17:05,620 --> 00:17:06,620
you want to represent ah the way that we would
ah represent so its essentially is point five
204
00:17:06,620 --> 00:17:07,620
is basically equal to one times two to the
power minus one the mantissa contains twenty
205
00:17:07,620 --> 00:17:08,620
three bits right so is a twenty three bit
mantissa the first bit corresponds to two
206
00:17:08,620 --> 00:17:09,620
to the power minus one the last bit corresponds
to two to the power minus twenty three and
207
00:17:09,620 --> 00:17:10,620
the ith bit corresponds two to the power minus
i so the mantissa can be thought as a summation
208
00:17:10,620 --> 00:17:11,620
from i is equal to one to twenty three the
coefficient x i multiplied by two to the power
209
00:17:11,620 --> 00:17:12,620
minus i since this is point five which is
two to the power minus one we will have one
210
00:17:12,620 --> 00:17:13,620
over here which is the m s b position and
the rest all will be zeros
211
00:17:13,620 --> 00:17:14,620
so this is how we would represent a number
of the type minus three in the i triple e
212
00:17:14,620 --> 00:17:15,620
seven five four format all right and this
is actually very easy the first we represent
213
00:17:15,620 --> 00:17:16,620
the sign bit then we figure out the value
of the e field by adding the bias to the exponent
214
00:17:16,620 --> 00:17:17,620
which is one twenty eight and then we figure
out the mantissa so the mantissa mind you
215
00:17:17,620 --> 00:17:18,620
is strictly between strictly less than one
and ah it is greater than equal to zero and
216
00:17:18,620 --> 00:17:19,620
it's essentially a summation ah from ah you
know two to the power minus one two to the
217
00:17:19,620 --> 00:17:20,620
power minus twenty three each term multiplied
by a coefficient in this case we just need
218
00:17:20,620 --> 00:17:21,620
to stop at point five so the m s b needs to
be one because it's two to the power minus
219
00:17:21,620 --> 00:17:22,620
one and rest all the terms need to be equal
to zero right so this is the representation
220
00:17:22,620 --> 00:17:23,620
of our floating point number in binary
given this let's take a look at some of the
221
00:17:23,620 --> 00:17:24,620
clear aspects of floating point math so the
smallest normal floating point number that
222
00:17:24,620 --> 00:17:25,620
we can have right the smallest normal positive
floating point number that we can have is
223
00:17:25,620 --> 00:17:26,620
let's work it out so that basically since
it's positive the sign bit is zero and the
224
00:17:26,620 --> 00:17:27,620
smallest value of e that we can have is actually
one so basically this is minus one twenty
225
00:17:27,620 --> 00:17:28,620
six this is the exponent and the smallest
mantissa that we can have in a positive setting
226
00:17:28,620 --> 00:17:29,620
is all zeros
so assume that f is one such number which
227
00:17:29,620 --> 00:17:30,620
is a smallest normal floating point number
so we have a floating point f is two to the
228
00:17:30,620 --> 00:17:31,620
power minus one twenty six we take another
number g which is f divided by two so this
229
00:17:31,620 --> 00:17:32,620
number is two to the power minus one twenty
seven which is g and g can clearly not be
230
00:17:32,620 --> 00:17:33,620
represented in our system of normal numbers
because we don't have a representation for
231
00:17:33,620 --> 00:17:34,620
it
now let's consider the next statement if g
232
00:17:34,620 --> 00:17:35,620
is equal to zero so now the question is that
what is the value of g if g is equal to zero
233
00:17:35,620 --> 00:17:36,620
let's print error and should this code print
error and do you think this is the right behavior
234
00:17:36,620 --> 00:17:37,620
well intuitively know right so let me maybe
you know write a big no over here intuitively
235
00:17:37,620 --> 00:17:38,620
no because f is a positive number g is the
same positive number divided by two it is
236
00:17:38,620 --> 00:17:39,620
not equal to zero so there is as such no reason
of concluding the g is equal to zero and printing
237
00:17:39,620 --> 00:17:40,620
error but we also don't have a representation
for g so we somehow need to solve this situation
238
00:17:40,620 --> 00:17:41,620
so what we can do is that we can define a
set of denormal numbers where the e field
239
00:17:41,620 --> 00:17:42,620
in the representation is zero and the m field
is not equal to zero and so the normal form
240
00:17:42,620 --> 00:17:43,620
of a denormal numbers here we change the significand
instead of assuming that the significand is
241
00:17:43,620 --> 00:17:44,620
of the form one plus m we assume it is zero
plus m right zero becomes the default and
242
00:17:44,620 --> 00:17:45,620
mantissa remains the same between zero one
one and we multi and the exponent we assume
243
00:17:45,620 --> 00:17:46,620
is two to the power minus one twenty six right
so in this case e is equal to zero and we
244
00:17:46,620 --> 00:17:47,620
assume that x is equal to minus one twenty
six mind you it is not minus one twenty seven
245
00:17:47,620 --> 00:17:48,620
this is a common mistake that students typically
make it is not minus one twenty seven it is
246
00:17:48,620 --> 00:17:49,620
minus one twenty six so the the and a common
question that instructors typically ask is
247
00:17:49,620 --> 00:17:50,620
why minus one twenty six so let's try to understand
what's happening so let's consider the number
248
00:17:50,620 --> 00:17:51,620
line and let's assume that these are all the
floating point numbers that we can represent
249
00:17:51,620 --> 00:17:52,620
so the smallest normal floating point number
is two to the power minus one twenty six right
250
00:17:52,620 --> 00:17:53,620
so basically we want to define a very small
region or numbers after this such that so
251
00:17:53,620 --> 00:17:54,620
mind you the diagram is not drawn to scale
so this part is normal right so we want to
252
00:17:54,620 --> 00:17:55,620
define a very small regional numbers around
here called denormal such that you know we
253
00:17:55,620 --> 00:17:56,620
our programs make sense and this particular
program does not print error to actually ensure
254
00:17:56,620 --> 00:17:57,620
that this is the case we define a normal form
of this type but the significand is assumed
255
00:17:57,620 --> 00:17:58,620
to be zero
so in this case let's find out what is the
256
00:17:58,620 --> 00:17:59,620
ah value of the largest possible mantissa
the value of the largest possible mantissa
257
00:17:59,620 --> 00:18:00,620
is pretty much equal to ah the mantissa or
the significance so they are actually the
258
00:18:00,620 --> 00:18:01,620
same is equal to two to the power i where
i is pretty much or i would say minus i for
259
00:18:01,620 --> 00:18:02,620
i is going from one to twenty three right
which is equal to two to the power minus one
260
00:18:02,620 --> 00:18:03,620
plus two to the power minus two all the way
till two to the power minus twenty three
261
00:18:03,620 --> 00:18:04,620
so this is a simple ah geometric series summation
and so when we look at you know any kind of
262
00:18:04,620 --> 00:18:05,620
ah geometric series summation ah so we can
expand the geometric series and we can do
263
00:18:05,620 --> 00:18:06,620
some maths so i will write down the result
directly and the result is one minus two to
264
00:18:06,620 --> 00:18:07,620
the power minus twenty three so this is an
important result and this will come many times
265
00:18:07,620 --> 00:18:08,620
in the book and in our discussion so users
might want to memorize this readers might
266
00:18:08,620 --> 00:18:09,620
want to memorize this but the important point
over here if i want to find the largest denormal
267
00:18:09,620 --> 00:18:10,620
number this is essentially equal to one minus
two to the power minus twenty three multiplied
268
00:18:10,620 --> 00:18:11,620
with minus one twenty six which is two to
the power minus one twenty six minus two to
269
00:18:11,620 --> 00:18:12,620
the power minus one forty nine right so this
is the largest denormal numbers so pretty
270
00:18:12,620 --> 00:18:13,620
much if we take the number line right and
if this point is zero
271
00:18:13,620 --> 00:18:14,620
so the largest denormal number is at this
point and the smallest normal number is at
272
00:18:14,620 --> 00:18:15,620
this point right so ah as we see ah the difference
between them is really small to the power
273
00:18:15,620 --> 00:18:16,620
minus one forty nine and ah so some difference
needs to be there because it is after all
274
00:18:16,620 --> 00:18:17,620
the discreet number system it's not a continuous
number system but the important point to appreciate
275
00:18:17,620 --> 00:18:18,620
is that this should not have been minus one
twenty seven it it should be minus one twenty
276
00:18:18,620 --> 00:18:19,620
six because that is only when we get this
property over here that we have a very very
277
00:18:19,620 --> 00:18:20,620
small distance between the largest denormal
number in the smallest positive normal number
278
00:18:20,620 --> 00:18:21,620
and so what is the smallest what is the range
of the denormal numbers the range of the denormal
279
00:18:21,620 --> 00:18:22,620
numbers the smallest positive denormal numbers
would pretty much have the mantissa the last
280
00:18:22,620 --> 00:18:23,620
twenty third bit would be equal to one so
it will be minus two to the power minus twenty
281
00:18:23,620 --> 00:18:24,620
three multiplied with two to the power minus
one twenty six which is two to the power minus
282
00:18:24,620 --> 00:18:25,620
one forty nine
so they so just to summarize what is happened
283
00:18:25,620 --> 00:18:26,620
is that we have the set of all the normal
numbers you have just created a little bit
284
00:18:26,620 --> 00:18:27,620
more room of denormal numbers such that a
lot of our maths in a programming actually
285
00:18:27,620 --> 00:18:28,620
makes sense and we don't come up with very
non intuitive answers so that's the reason
286
00:18:28,620 --> 00:18:29,620
denormal numbers have been defined in this
particular fashion and so i would ah request
287
00:18:29,620 --> 00:18:30,620
the readers to take a look at the normal form
for both normal in a standard or normal form
288
00:18:30,620 --> 00:18:31,620
for both the normal floating point numbers
ah as well as the denormal floating point
289
00:18:31,620 --> 00:18:32,620
numbers find out what are the differences
do some of the maths that i did just now and
290
00:18:32,620 --> 00:18:33,620
convince themselves for the utility of denormal
numbers and how they can help avoid non intuitive
291
00:18:33,620 --> 00:18:34,620
results
so so we had pretty much the same thing in
292
00:18:34,620 --> 00:18:35,620
the slides that i have over written them so
but here is the in example the ranges of denormal
293
00:18:35,620 --> 00:18:36,620
numbers which you just found out so the positive
denormal numbers starts from two to the power
294
00:18:36,620 --> 00:18:37,620
minus one forty nine to two to the power minus
one twenty six minus two to the power minus
295
00:18:37,620 --> 00:18:38,620
one forty nine and the normal numbers then
start from two to the power minus one twenty
296
00:18:38,620 --> 00:18:39,620
six
similarly for negative denormal numbers the
297
00:18:39,620 --> 00:18:40,620
range is minus two to the power minus one
forty nine to the same thing albeit with a
298
00:18:40,620 --> 00:18:41,620
sign reversals so as i said all that denormal
numbers do will to extend the range of floating
299
00:18:41,620 --> 00:18:42,620
point numbers a little bit and mind you such
diagrams are never drawn to scale such that
300
00:18:42,620 --> 00:18:43,620
again ah our maths make sense
so what we saw is that the range of floating
301
00:18:43,620 --> 00:18:44,620
point numbers let's take a look at the range
of the number systems so for an integer with
302
00:18:44,620 --> 00:18:45,620
a thirty two bit so typically an integer is
thirty two bits right and ah that's what an
303
00:18:45,620 --> 00:18:46,620
int in c or in java would typically correspond
to in a thirty two bit number system it twos
304
00:18:46,620 --> 00:18:47,620
complement roughly the largest number that
you can represent is two to the power thirty
305
00:18:47,620 --> 00:18:48,620
one right so maybe let me write it down that
for a four sorry for a thirty two bit integer
306
00:18:48,620 --> 00:18:49,620
you know these are just rough figures the
maximum that we can go to is like plus minus
307
00:18:49,620 --> 00:18:50,620
to the power thirty one for a thirty two bit
floating point number the maximum that we
308
00:18:50,620 --> 00:18:51,620
can go to is ah roughly you know in the range
of plus minus two to the power positive one
309
00:18:51,620 --> 00:18:52,620
twenty seven but then of course the mantissa
can be higher so i can make it one twenty
310
00:18:52,620 --> 00:18:53,620
eight that's maybe another largest ah that
we can go to a very very approximate figures
311
00:18:53,620 --> 00:18:54,620
and two to the power one twenty eight is around
ten to the power forty right ah typical numbers
312
00:18:54,620 --> 00:18:55,620
the approximate range of doubles is much more
a double precision number because this user
313
00:18:55,620 --> 00:18:56,620
sixty four bits and doesn't use thirty two
bits so in this case we have a one bit sign
314
00:18:56,620 --> 00:18:57,620
bit we have eleven bits for the e field mind
you not eight bits but eleven bits ah so this
315
00:18:57,620 --> 00:18:58,620
means that ah so the bias is also different
instead of a bias of one twenty seven the
316
00:18:58,620 --> 00:18:59,620
bias is thousand twenty three right and we
can ah go we we can cover a much larger range
317
00:18:59,620 --> 00:19:00,620
of numbers ah from minus thousand twenty three
till plus thousand and ah so the range is
318
00:19:00,620 --> 00:19:01,620
typically plus or minus ten to the power three
hundred eight which is a fairly large range
319
00:19:01,620 --> 00:19:02,620
and we would typically not need more than
this for most of our calculations so this
320
00:19:02,620 --> 00:19:03,620
is a lot right and we don't ah typically need
more than this so i can add ah note over here
321
00:19:03,620 --> 00:19:04,620
that for a sixty four bit double double precision
what we have double in c
322
00:19:04,620 --> 00:19:05,620
we are roughly at plus or minus two to the
power one thousand twenty three and this is
323
00:19:05,620 --> 00:19:06,620
roughly ten to the power three hundred right
so this is roughly ten to power three hundred
324
00:19:06,620 --> 00:19:07,620
this is roughly ten to the power thirty seven
or thirty eight and ah this is much much smaller
325
00:19:07,620 --> 00:19:08,620
so two to the power thirty is around a billion
so this is roughly ten to the power ah ah
326
00:19:08,620 --> 00:19:09,620
is actually three four billion ah something
like that and ah so this is roughly a ten
327
00:19:09,620 --> 00:19:10,620
to the power ah nine kind of figure slightly
more than that so so it's several billion
328
00:19:10,620 --> 00:19:11,620
is limit around four billion is the limit
and ah if i consists it's ah around two billion
329
00:19:11,620 --> 00:19:12,620
to be precise plus minus
let us now take a look at some basic floating
330
00:19:12,620 --> 00:19:13,620
point math that we want to add we have two
numbers ah a and b where a is two to the power
331
00:19:13,620 --> 00:19:14,620
fifty and b is two to the power ten we want
to add a plus b and then we want to subtract
332
00:19:14,620 --> 00:19:15,620
a but a plus b we want to be done first thats
the reason is there inside a bracket so if
333
00:19:15,620 --> 00:19:16,620
we add if a and b we are essentially adding
two raised to the power fifty plus two raised
334
00:19:16,620 --> 00:19:17,620
to the power ten if we do this the result
would look something like this that a sign
335
00:19:17,620 --> 00:19:18,620
bit will be zero the exponent has to be the
larger one can't be the smaller one the two
336
00:19:18,620 --> 00:19:19,620
to the power fifty plus the significand has
to be something of the form one plus two to
337
00:19:19,620 --> 00:19:20,620
the power minus forty right so that so this
is the only way that we'll be able to represent
338
00:19:20,620 --> 00:19:21,620
such a number so the mantissa has to be two
to the power minus forty but the smallest
339
00:19:21,620 --> 00:19:22,620
value of the mantissa that we can possibly
represent in our system is two to the power
340
00:19:22,620 --> 00:19:23,620
minus twenty three right so this is the smallest
value that we can represent as a result this
341
00:19:23,620 --> 00:19:24,620
number cannot be represented in our system
so this is the problems so what most hardware
342
00:19:24,620 --> 00:19:25,620
would do is that they will actually take two
to the power fifty plus two to the power ten
343
00:19:25,620 --> 00:19:26,620
and since the mantissa cannot be represented
they will just produce two to the power fifty
344
00:19:26,620 --> 00:19:27,620
as a result and then when we subtract two
to the power fifty minus two to the power
345
00:19:27,620 --> 00:19:28,620
fifty c will be computed to be zero so this
is a non intuitive result mathematically right
346
00:19:28,620 --> 00:19:29,620
so mathematically we don't expect this result
what do we expect we expect a and a to be
347
00:19:29,620 --> 00:19:30,620
canceled in a result to be b which is to the
power ten so what a lot of smart compilers
348
00:19:30,620 --> 00:19:31,620
can possibly do is reorder the operations
to increase precision and in this case actually
349
00:19:31,620 --> 00:19:32,620
break down the bracket but this is again not
what the programmer wants so as a result there
350
00:19:32,620 --> 00:19:33,620
is a big gray area over here but the most
important thing that we need to understand
351
00:19:33,620 --> 00:19:34,620
is a floating point math is approximate it's
not you know exact the reason it is approximate
352
00:19:34,620 --> 00:19:35,620
is because we have a limited number of bits
and with those limited number of bits we can
353
00:19:35,620 --> 00:19:36,620
own and also with a lot of constraints we
can only represent a very limited set of numbers
354
00:19:36,620 --> 00:19:37,620
within our constraints in this case we cannot
represent a number of the form two raised
355
00:19:37,620 --> 00:19:38,620
to the power fifty plus two raised to the
power ten it's not it's simply not possible
356
00:19:38,620 --> 00:19:39,620
for us to represent a number of this kind
as a result here we will have a non intuitive
357
00:19:39,620 --> 00:19:40,620
ah result are coming at the end where c will
be computed to be zero at least most compilers
358
00:19:40,620 --> 00:19:41,620
would do that a lot of compilers might want
to reorder the operations or locally resolve
359
00:19:41,620 --> 00:19:42,620
the operations but it is very much conceivable
that this program on a lot of ah programming
360
00:19:42,620 --> 00:19:43,620
languages and hardware would actually produce
to raise the power ten ah sorry would actually
361
00:19:43,620 --> 00:19:44,620
produce zero it would not produce to raise
the power ten which is a non intuitive result
362
00:19:44,620 --> 00:19:45,620
so programmers need to keep these things in
mind while writing programs with floating
363
00:19:45,620 --> 00:19:46,620
point numbers and always keep in mind that
is an inexact approximate representation
364
00:19:46,620 --> 00:19:47,620
now let's take a look at the fifth part fifth
and last part of this chapter which is representing
365
00:19:47,620 --> 00:19:48,620
strings what is a string it's a piece of text
right in any ah piece of text any the same
366
00:19:48,620 --> 00:19:49,620
way that these slides are there where i have
written ascii is american standard code this
367
00:19:49,620 --> 00:19:50,620
is a piece of text how should we represent
it so the most common way of representing
368
00:19:50,620 --> 00:19:51,620
pieces of text was with the ascii format and
ascii is american standard code for information
369
00:19:51,620 --> 00:19:52,620
interchange it has hundred twenty eight characters
the first thirty two characters are actually
370
00:19:52,620 --> 00:19:53,620
non non printing characters therefore control
operations like character number eight is
371
00:19:53,620 --> 00:19:54,620
for backspace to actually delete a characters
character ten is line feed which used to tell
372
00:19:54,620 --> 00:19:55,620
printers to jump to the next line ah twenty
seven is the escape character it corresponds
373
00:19:55,620 --> 00:19:56,620
to the escape key on our keyboard and then
the remaining are ah letters small letters
374
00:19:56,620 --> 00:19:57,620
capital letters special characters like exclamation
mark enact and numbers of course
375
00:19:57,620 --> 00:19:58,620
so since there are hundred twenty eight characters
each character encoded using seven bits so
376
00:19:58,620 --> 00:19:59,620
the ascii characters set ah looks like this
that's a here is a typi ah a code of some
377
00:19:59,620 --> 00:20:00,620
of the common characters from ah small a to
small z ah the code ah goes from ninety seven
378
00:20:00,620 --> 00:20:01,620
to hundred and twenty two similarly from capital
a to capital z the code goes from sixty five
379
00:20:01,620 --> 00:20:02,620
till ninety right so basically ah then we
have a numbers from zero to nine where the
380
00:20:02,620 --> 00:20:03,620
codes are assigned from forty eight to fifty
seven and there are different kinds of code
381
00:20:03,620 --> 00:20:04,620
for different kinds of special characters
and punctuation marks that we used like exclamation
382
00:20:04,620 --> 00:20:05,620
hashed all their brackets comma semicolon
and so on
383
00:20:05,620 --> 00:20:06,620
so the problem with the ascii set is first
is only for english and english is a very
384
00:20:06,620 --> 00:20:07,620
simple language ah in english the number of
characters are few and ah we don't have special
385
00:20:07,620 --> 00:20:08,620
marks and what is there in you know other
ah specialized characters that come up in
386
00:20:08,620 --> 00:20:09,620
other languages with also combinations and
so on so for this we have the unicode format
387
00:20:09,620 --> 00:20:10,620
so it's the universal character set transformation
format is a u t f format so the u t f eight
388
00:20:10,620 --> 00:20:11,620
standard enables around encodes around a million
characters defined in this set and it can
389
00:20:11,620 --> 00:20:12,620
use one to six bytes for this purpose
so what i have done over here is that i have
390
00:20:12,620 --> 00:20:13,620
written a couple of characters in different
languages ah some of these so this is hindi
391
00:20:13,620 --> 00:20:14,620
for example of dev nagari script this i believe
is is a tamil character ah this i don't recall
392
00:20:14,620 --> 00:20:15,620
it might be a korean character and this is
a ah i think ah character name from the kannada
393
00:20:15,620 --> 00:20:16,620
language so with so many ah characters it
is necessary to encode them so for this the
394
00:20:16,620 --> 00:20:17,620
u t f for the unicode format was designed
which has become standard now so u t f eight
395
00:20:17,620 --> 00:20:18,620
is compatible with ascii in the sense that
the first hundred twenty eight characters
396
00:20:18,620 --> 00:20:19,620
in u t f eight correspond to the ascii characters
so when you use ascii characters u t f eight
397
00:20:19,620 --> 00:20:20,620
will require just one byte ah and it will
have a leading zero which means that the remaining
398
00:20:20,620 --> 00:20:21,620
seven bits specify ascii characters
most of the other languages that use variants
399
00:20:21,620 --> 00:20:22,620
of the roman script such as french german
and spanish require two bytes per character
400
00:20:22,620 --> 00:20:23,620
in u t f eight greek russian hebrew and arabic
also require two bytes so this has become
401
00:20:23,620 --> 00:20:24,620
a standard across all browsers and operating
systems so nowadays it is very common for
402
00:20:24,620 --> 00:20:25,620
users to read articles which have been written
in multiple languages maybe an ad is coming
403
00:20:25,620 --> 00:20:26,620
in some other language so all of this happens
cuts a unicode so u t f eight has been superseded
404
00:20:26,620 --> 00:20:27,620
by u t f sixteen and thirty two
so u t f sixteen uses two byte or four byte
405
00:20:27,620 --> 00:20:28,620
encodings and java and windows support u t
f sixteen so as of now at least u t f sixteen
406
00:20:28,620 --> 00:20:29,620
is a more popular character set and u t f
thirty two uses four bytes for every characters
407
00:20:29,620 --> 00:20:30,620
and rarely use it's not that commonly used
but u t f eight and u t f sixteen are the
408
00:20:30,620 --> 00:20:31,620
encoding sub choice where basically every
character is represented with a certain sequence
409
00:20:31,620 --> 00:20:32,620
of bits and in any document you just have
character by character which is essentially
410
00:20:32,620 --> 00:20:33,620
a sequence of bits that encode each character
and ah so when the document needs to be shown
411
00:20:33,620 --> 00:20:34,620
on the screen your word processor program
extracts all the bytes out converts them into
412
00:20:34,620 --> 00:20:35,620
characters for each character it draws a small
image that corresponds to the way the character
413
00:20:35,620 --> 00:20:36,620
should look on the screen all right
so this brings us to the end of chapter two
414
00:20:36,620 --> 00:20:37,620
so what are we achieved in chapter two let's
go back to the outline slide say in the outline
415
00:20:37,620 --> 00:20:38,620
slide we have basically shown what is possible
to do with a set of bits so we can work on
416
00:20:38,620 --> 00:20:39,620
them we can define an algebra and we can have
basic operations we can represent both positive
417
00:20:39,620 --> 00:20:40,620
as well as negative integers using a set of
bits so they have their constraints but again
418
00:20:40,620 --> 00:20:41,620
we ah overcame all of those constraints and
we came up with a twos complement notation
419
00:20:41,620 --> 00:20:42,620
which is the most effective notation as of
now to represent negative integers
420
00:20:42,620 --> 00:20:43,620
after that we extended the results that we
had to represent floating point numbers so
421
00:20:43,620 --> 00:20:44,620
in that case we needed to go for a slightly
different representation the reason being
422
00:20:44,620 --> 00:20:45,620
that we actually needed to represent the exponent
as well and we also made a trade off for simplicity
423
00:20:45,620 --> 00:20:46,620
this is one of the vital learnings that you
need to have that in computer architecture
424
00:20:46,620 --> 00:20:47,620
sometimes you need to walk a step back and
make things simple so in this case instead
425
00:20:47,620 --> 00:20:48,620
of going for a twos complement representation
of the exponent we actually used a bias based
426
00:20:48,620 --> 00:20:49,620
representation and you also use an explicit
sign bit just to make our life easy and also
427
00:20:49,620 --> 00:20:50,620
to leverage the pattern that you typically
don't multiply the exponent you would only
428
00:20:50,620 --> 00:20:51,620
multiply it when a number is being raised
to the power of some other number but that's
429
00:20:51,620 --> 00:20:52,620
a rela relatively rare operation
most of the time we are only adding and multiplying
430
00:20:52,620 --> 00:20:53,620
floating point numbers in that case we do
not you know per se multiply the exponent
431
00:20:53,620 --> 00:20:54,620
lastly we talked about strings we talked about
the basic simple ascii format for english
432
00:20:54,620 --> 00:20:55,620
we also talked about the generic unicode formats
or the u t f formats two of them are very
433
00:20:55,620 --> 00:20:56,620
common u t f eight and u t f sixteen u t f
eight and sixteen are used to represent almost
434
00:20:56,620 --> 00:20:57,620
all the text today in ah all the worlds languages
and there are many additional characters as
435
00:20:57,620 --> 00:20:58,620
well and many cartoon like characters that
can be used to make really expressive documents
436
00:20:58,620 --> 00:20:59,620
so now that we have a certain hold on ah ah
bits and how they can be used we need to design
437
00:20:59,620 --> 00:21:00,620
a language simple low level language that
can communicate with the processor using these
438
00:21:00,620 --> 00:21:01,620
bits to accomplish fairly complex tasks which
is the ah which is the main goal of the next
439
00:21:01,620 --> 00:21:02,620
chapter the chapter on assembly language to
achieve complicated tasks using simple bits
440
00:21:02,620 --> 00:21:02,636
so see you then ah with chapter three which
is going to be the next lecture