.
In this segment, we're going to
talk about the background for floating point representation.
We are going to discuss base-10
floating point representation
background, so that, because you are familiar with the base-10, the decimal notation,
so that we can understand what the floating point representation in binary is, but we'll do that later.
So floating point representation, we want to look at the background of it.
What I would like you to do is, I would like you to go back a little bit in time,
where you used to have cash registers, which will have maybe three places
for the dollar, and two places for the cents.
So this is a fixed register, what we call it, so this is called a fixed register,
.
where you have so many places for the integer part of a number, and then you have
so many places for the decimal part of the
number, which is the cents, for example.|So in this case, what you would be able to see is that
the smallest number, the smallest number or the smallest purchase which you could ring
which will be 000.00, right?|Because
that's the . . . because that's the smallest number which you can put in this register.
So I'm not . . . I'm intentionally not putting the decimal sign here, or the point sign here,
because that's not part of the register itself, so I just want you to focus that we have
five places to work with, where we are using the first three here for the integer
part, and the last two for the fractional part.|What is the largest number?
The largest number would be, in this case,
999.99.|So you can very well see that you could
ring up, or you could use this to store any number which is between 0
and 999.99.|Now, if you had a
number which was not . . . which had more than 2 decimal places, let's suppose you had
256.789.|If you had a number like that,
what you will have to do is you will use that number as 256.79
if you are rounding it up, that's what you will get.|If you're rounding off the number,
not chopping it, but rounding it off, this would get represented as 256.79.
And if you see what is the true error in this case, what is the absolute true error
in this case will be 256.789 is the actual number,
and you are representing as 256.79, so
the error which you are getting is -0.001,
that's what you are getting.|And you can very well see that the maximum absolute
true error which you're going to have, so this is absolute value, this is absolute value,
which is 0.001.|So the maximum absolute true error which you're going to have
will be not anything more than 0.01.|It is never going to be more than
0.01, because the numbers which you are representing in the register
go . . . increase in 0.01, or decrease in 0.01 form.
So I can take a number . . . if I take any number which is represented between 0 and 999.99,
the maximum true error which I'm going to get is less than or equal to 0.01.
In this case it's 0.001, but it will be always less than 0.01.
So what you are assured of is that any number which is represented
in this register will not have a true error of more than 0.01, that will be the
maximum true error in this case.|But let's go ahead and see what is the
absolute relative true error in this case.
So let's suppose if I take a number like 256.786.
That number will get represented as 256.79
in my fixed register there.|So how much is the true error?
The true error will be equal to 256.786, because that's
the exact . . . that's the exact number, it is getting represented as 256.79,
so the amount of error is -0.004.
How much is the relative . . . absolute relative true error in this case?|It will be the
true error divided by the exact value, which is 256.786,
times 100, and this value here turns out to be
0.0016
percent.|That's the amount of relative true error which you are getting in this case,
0.0016 percent.|If I take another number, let's suppose I take a
number like this, 3.546.|Now since it has more than two decimal
places, it is going to be approximately represented as
3.55, that's what going to happen here.|Now if I calculate my true error
will be, true error will be exact value, 3.546,
minus 3.55 will be -0.004.|So what you are finding out
coincidentally, this has the same true error as we had in the previous case, here also,
for this large number of 256.786.|So the true errors, as I said,
will be always the magnitude of the true error which you're going to get will be
always less than 0.01, it will never be more than 0.01, less than or equal to 0.01.
So, I should say less than 0.01.
But what is the relative true error?|Let's look at the relative true error.|The relative true error in this case is
-0.004, because that's the true error, divided by the exact value, which is
3.546 times 100, and the value here turns out to be
0.11 percent.
So what you are finding out is that although your true errors are in the same range
for a large number and for a small number when you have a fixed register,
the amount of relative error which you have is not . . .
is not in the same . . . of the same order.|Like for small numbers, for a small number
representation, you are possibly going to get larger relative true errors, or relative
round-off errors, and for large numbers you're going to get a smaller
relative round-off error, or relative true error.|So what floating point representation does, which
you will see in the next segment.|What it does is that it takes care of that, that you are able
to now represent numbers where your true errors might be large for large numbers
and small for small numbers, but your relative true errors are going to stay
of the same order, and that's the advantage of using floating point representation.|And we'll
see that a little bit more of the advantages of the floating point representation
in the next part.|And that's the end of this segment.
.