Floating Point Numbers
Floating point numbers are a huge part of any programmer's life - It's the way in which programming languages represent decimal numbers. We usually use them without second thought, but as it turns out, it's a fairly complex way to store a number! In this episode, we take a close look at how it works, as well as what concepts are relevant to it.
ERRATA: Please check the pinned comments for errors in this video and more information.
There's more to floating point! In this video, we missed out on Denormal numbers, which is a special case for small numbers. For more, watch the video here → • Denormal Numbers - Mor...
Try it out and see how it works → resources.nerdfirst.net/float
= CONTENTS =
0:00 Introduction
0:48 Recap on the basic bits of an integer
1:06 Fixed point numbers
1:39 Problems of Fixed point numbers
4:37 Fundamentals of Floating point numbers
6:12 Worked example of Bits → Float
→ 6:34 Sign
→ 6:44 Exponent
→ 7:55 Mantissa
→ 8:52 Putting everything together
9:49 Worked example of Float → Bits
→ 10:12 Creating a Fixed point representation
→ 13:29 Deriving the exponent & mantissa
→ 15:12 Putting everything together
= 0612 TV =
0612 TV, a sub-project of NERDfirst.net, is an educational KZread channel. Started in 2008, we have now covered a wide range of topics, from areas such as Programming, Algorithms and Computing Theories, Computer Graphics, Photography, and Specialized Guides for using software such as FFMPEG, Deshaker, GIMP and more!
Enjoy your stay, and don't hesitate to drop me a comment or a personal message to my inbox =) If you like my work, don't forget to subscribe!
Like what you see? Buy me a coffee → www.nerdfirst.net/donate/
0612 TV Official Writeup: nerdfirst.net/0612tv
More about me: about.me/lcc0612
Official Twitter: / 0612tv
= NERDfirst =
NERDfirst is a project allowing me to go above and beyond KZread videos into areas like app and game development. It will also contain the official 0612 TV blog and other resources.
Watch this space, and keep your eyes peeled on this channel for more updates! nerdfirst.net/
-----
Disclaimer: Please note that any information is provided on this channel in good faith, but I cannot guarantee 100% accuracy / correctness on all content. Contributors to this channel are not to be held responsible for any possible outcomes from your use of the information.
Пікірлер: 325
*PLEASE READ THIS COMMENT IN ITS ENTIRETY FOR MORE INFO AND ERRORS IN THE VIDEO* 1. There is an edge case called "Denormal Numbers" that has not been accounted for in this video. Thanks to @PRANAnomaly for sharing! I have made a new video to discuss this concept: kzread.info/dash/bejne/lGZ6yahro7jVg5s.html Another set of special cases, namely Infinity and NaN, are also not covered in this video. For more details, please watch this other video I made: kzread.info/dash/bejne/dmuAtMyDlbWxeto.html 2. ERRATA: At 2:20, note that the number on the right should either be written as 1/2 or 2^-1, but not 2^(1/2)! Thanks 業夝王 for bringing this to my attention! 3. ERRATA: At 15:47, note that the bits from the decimal portion were read off incorrectly. Thank you to spinakker for sharing! This is the version corrected by them: i.imgur.com/ufOeklR.png
@intoeleven
Жыл бұрын
Somehow this comment is not pinnted to the top...You can add it to your subtitles.
@NERDfirst
Жыл бұрын
Hello and thank you for your comment! Thanks for the heads up! I found that the pinned comment on quite a few of my videos had gotten unpinned somehow. I put them back whenever I come across them.
@intoeleven
Жыл бұрын
@@NERDfirst Thanks for the reply. Your videos help me a lot!
This was so far the most helpful video on floating-point representation I've seen. I'm surprised it didn't get more views. Thanks man!
@NERDfirst
3 жыл бұрын
Hello and thank you very much for your comment! Glad to be of help =)
Thanks, bro! This is SOOOOOO appreciated. I literally have a test on this stuff in about 9 hours.
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! All the best for your test =)
@okboing
4 жыл бұрын
How did u do
@ladell5101
3 жыл бұрын
@@okboing Super late, but I passed with a B+.
@markus6056
10 ай бұрын
@@ladell5101YES!
Thank you! I finally understand this after avoiding the subject for an entire semester..
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! Very happy to be of help =) Glad you got over that hurdle!
It's much more clear for me how floating point representation works. Thanks!
@NERDfirst
3 жыл бұрын
You're welcome! Very happy to be of help =)
Sir you have a natural talent to teach, thank you sooo much !!
@NERDfirst
8 ай бұрын
You're welcome! Very happy to be of help =)
I'm very sure it wasn't easy to put all of these great work together. I thank you for that.
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment! Yeah, this particular video was months in the making, heh. Honestly, quite relieved it's up. Glad you liked it =)
I have been struggling with this chapter for days and you just explained it in 15 minutes ?? I wish I had found this video sooner. Thank you so so much, this was extremely helpful :D
@NERDfirst
4 жыл бұрын
You're welcome! Very happy to be of help =)
thanks for putting in so much hard work in creating these videos . amazing explanation on floats .
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment! Glad you found the video useful =)
One of the best channels on YT for clarity of explanation! Hats down!
@NERDfirst
3 жыл бұрын
Hello and thank you very much for your comment! Very happy to be of help =)
you just saved my life. there is no other video explaining this stuff more clearly than you.
@NERDfirst
3 жыл бұрын
Hello and thank you for your comment! Glad to be of help =)
You definitely earned this sub. This was an amazingly edited video and the information was thoroughly explained, much appreciated! If you want to find the range of this representation is it take all 1s for all the exponent bits for the largest possible exponent, take 1s for all the mantissa bits, add one to the mantissa and then complete the calculation from negative sign to positive sign?
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment and support! If you're looking for the smallest possible number (ie. a negative number) all the way up to the largest positive number, then yes - Just make the largest possible exponent and mantissa with both positive and negative signs and you'll get both. If you want to find the smallest positive number though, that's a bit harder. For that you'll need to look into Denormal numbers, which I did not cover in this video. A denormal number allows you to get an even smaller exponent than the exponent actually allows, by using zeroes in the mantissa. For more: kzread.info/dash/bejne/lGZ6yahro7jVg5s.html
I was pretty lost when I started to study this topic, but thanks to you it's not a problem anymore. Keep up the good work!
@NERDfirst
2 жыл бұрын
Hello and thank you very much for your comment! Very happy to be of help :)
I appreciate so much having found this video, is not only greatly explained. But the page with the Floating point explorer is just beautiful. Thank you!
@NERDfirst
Жыл бұрын
You're welcome! Very happy to be of help =)
Absolutely excellent video. The website you created is a fantastic learning companion to the concept as well. Thank you!
@NERDfirst
Жыл бұрын
You're welcome! Very happy to be of help :)
Such a clean and intuitive explanation, thank you!! 🙏
@NERDfirst
Жыл бұрын
You're welcome! Very happy to be of help =)
Thank's so much for a such quick video with a such huge impact on knowledge!
@NERDfirst
4 жыл бұрын
You're welcome! Very happy to be of help =)
Great Explanation. Thanks so much!
@NERDfirst
4 жыл бұрын
You're welcome! Very happy to be of help =)
Very clearly explained! Thank you for this video
@NERDfirst
2 жыл бұрын
You're welcome! Very happy to be of help =)
Great explanation, best video I found so far for floating point
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment! Glad you liked the video =)
Amazing tutorial. Easy to understand than others on youtube.
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! Very happy to be of help =)
Thank you for making this video. You literally just helped me pass an exam i couldn't have studied on time for. You are the best. Keep up the good work.
@NERDfirst
2 жыл бұрын
You're welcome! Very happy to be of help =)
i see a lot of simplicity in this video , Best WAY to explain stuff , thank you so much buddy !
@NERDfirst
4 жыл бұрын
You're welcome! Very happy to have been of help =)
this is way better than my module! finally get to understand :)
@NERDfirst
3 жыл бұрын
Hello and thank you for your comment! Glad you liked the video =)
There is no word that can describe how thankful to you . Thank you for the very helpful lesson.
@NERDfirst
2 жыл бұрын
You're welcome! Very happy to be of help =)
This was perfectly clear man! Thank you, really!
@NERDfirst
3 жыл бұрын
Hello and thank you very much for your comment! Very happy to be of help =)
Loved your way of explanation. Crisp and Clean :) Thank you :)
@NERDfirst
3 жыл бұрын
You're welcome! Very happy to be of help =)
Thank you, great explanation!
@NERDfirst
Жыл бұрын
You're welcome! Very happy to be of help =)
what a legend. I really enjoyed the video. Thank you :)
@NERDfirst
Жыл бұрын
You're welcome! Very happy to be of help =)
tysmmm u saved me....ur hardwork is much appreciated.
@NERDfirst
2 жыл бұрын
You're welcome! Very happy to be of help =)
i try to watch other videos but only on this one i got it, great explanation, thanks!
@NERDfirst
2 жыл бұрын
You're welcome! Very happy to be of help =)
Hats of to you sir, everything is crystal clear now :)
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment! Happy to be of help =)
Very thanks to you for your clear information
@NERDfirst
4 жыл бұрын
You're welcome! Very happy to be of help =)
Great stuff. I really dont miss going to university with videos like this
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment! Glad you liked the video =)
Thank you, man! Super helpful!
@NERDfirst
4 жыл бұрын
You're welcome! Very happy to be of help =)
You are a life saver! Subbed!
@NERDfirst
3 жыл бұрын
Hello and thank you for your comment! Happy to be of help =)
Thank you very clear explanation
@NERDfirst
Жыл бұрын
You're welcome! Very happy to be of help =)
awesome description mate
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! Glad you liked the video =)
My gratitude... is endless.
@NERDfirst
3 жыл бұрын
You're welcome! Glad to be of help =)
Amazing explanation ❤
@NERDfirst
5 ай бұрын
Hello and thank you very much for your comment! Glad you liked the video =)
very good explanation.
@NERDfirst
2 жыл бұрын
Hello and thank you for your comment! Glad you liked the video =)
After 2 -3 videos I found this video and it cleared all my doubts and I just want to tell you that I am in love with your explanation .Loveeeeeeee Youuuuuu bro
@NERDfirst
3 жыл бұрын
Hello and thank you very much for your comment! Very happy to be of help =)
Love your video man !!!
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! Glad you liked the video =)
Wow ... I feel like fall in love with floating point numbers... Your video is awsome Thank you :D
@NERDfirst
2 жыл бұрын
You're welcome! Very happy to be of help =)
Very good video. Even though I didn't fully understand the process, it's still much easier to wrap my head around this concept overall. Thank you 🙏🙏
@NERDfirst
Күн бұрын
Hello and thank you very much for your comment! Glad to be of help =) If you have anything you'd like me to clarify, feel free to let me know in a comment and I'll do what I can to help you!
One of the few videos on KZread regarding floats where IEEE-754 is respected. Good job!
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment! Do note that I do make some mistakes, please refer to the pinned comment for more =)
Man.... u r the first one to make me have clear picture on this 👍👍
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment! Glad to be of help =)
loved it. really helped me. It was the only thing I did not know for my exam. It is in 2 hours.
@NERDfirst
3 жыл бұрын
Hello and thank you for your comment! All the best for your exam!
Thank you sooooooooo much! I finally got it!
@NERDfirst
3 жыл бұрын
You're welcome! Very happy to be of help =)
This video is amazing !!!! Thank you so much .. :)
@NERDfirst
2 жыл бұрын
You're welcome! Very happy to be of help =)
Thanks…..I will revisit this video couple of times in order to fully understand floating point.😊
@NERDfirst
Жыл бұрын
Hello and thank you for your comment! Feel free to do so, and to clarify any doubts in the comments if you need :)
This is excellent!
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment! Glad you liked the video =)
Great explanation
@NERDfirst
3 жыл бұрын
Hello and thank you for your comment! Glad to be of help =)
Thank you sooo much !!!
@NERDfirst
3 жыл бұрын
You're welcome! Happy to be of help =)
great explanation!
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! Glad you liked the video =)
Your channel deserve more subscribers
thats amazing video finally after 4 days i got some easy and interesting video to learn floating point representation thakuu sir
@NERDfirst
2 жыл бұрын
You're welcome! Very happy to be of help =)
Gee I delved the whole Internet for a simple clear explanation like this Many thanks Bro!
@NERDfirst
4 жыл бұрын
You're welcome! Very happy to be of help =)
I'm 72. Real powerful presentation, and your "Floating Point Explorer" calculator gives a chance to verify my understanding. Thank you. 2021 10 04 (as 2 years after publishing)
@NERDfirst
2 жыл бұрын
Hello and thank you very much for your comment! Very happy to be of help =)
Thank you very much this helped me a lot ❤
@NERDfirst
Жыл бұрын
You're welcome! Glad to be of help =)
amazing explanation
@NERDfirst
2 жыл бұрын
Hello and thank you very much for your comment! Glad you liked the video :)
THANK YOU. The way floating point numbers were explained in my textbook made absolutely no sense. This was easy to follow and actually helped me get my head around the concept. You're the best!
@NERDfirst
2 жыл бұрын
You're welcome! Very happy to be of help =) For a more complete understanding, you might want to watch the follow up videos about Denormal numbers, and do take note of the errata in the comments as well.
thank you very much, great explanation! :-) Cheers from Czech republic.
@NERDfirst
3 жыл бұрын
You're welcome! Very happy to be of help =)
very helpful thanks
@NERDfirst
Жыл бұрын
You're welcome! Very happy to be of help =)
Excellent!
@NERDfirst
2 жыл бұрын
Hello and thank you for your comment! Glad you liked the video =)
Thank you dear Bro. Thant's great. Nice. good job. 🙏
@NERDfirst
Жыл бұрын
You're welcome! Glad to be of help =)
Thank you so much.
@NERDfirst
2 жыл бұрын
You're welcome! Glad to be of help =)
Great video!
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! Very happy to be of help =)
this was freakingggg helpful...
dude you are amazing keep making videos like this it is so damn helpful
@NERDfirst
4 жыл бұрын
Hello and thank you very much for your comment! Very happy to be of help =)
this video was amazing, you would be a great professor
@NERDfirst
2 жыл бұрын
Hello and thank you very much for your comment! I do teach in physical classes, so it's good to hear the vote of confidence =)
@alexmay7250
2 жыл бұрын
@@NERDfirst came back to review for my finial exam, your students are very lucky
king i learnt more from you in 19 minutes than in my university lecture
@NERDfirst
Жыл бұрын
Hello and thank you for your comment! Glad to be of help =)
thank you so much
@NERDfirst
9 ай бұрын
You're welcome! Happy to be of help :)
14.25 -' if it was a zero we could stop it at a different place and express with a different exponent' ? What different place and what different exponent. I have used this video to code the floating point in VBA.It works with everything other than say 0.5. Very good video !
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! What I mean is, if you don't have the rule that the mantissa starts with 1, then all of the below are valid representations of 0.25: 0.25 × 2^1 0.5 × 2^-1 1 × 2^-2 2 × 2^-3 So to make the numbers consistent, the rules say the mantissa has an implied "1." in front.
Amazing video.
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! Glad you liked the video =)
thank youuu !!
@NERDfirst
4 жыл бұрын
You're welcome! Glad to be of help =)
Thanks!
@NERDfirst
6 ай бұрын
You're welcome! Glad to be of help :)
Legendary guy!!!!
@NERDfirst
Жыл бұрын
Hello and thank you very much for your comment! Glad you liked the video =)
Omg do you have any idea how many videos I have watched, reread my CPE textbook to try to figure out why we add 1 to the mantissa. My textbook literally says, there's a one but it can be omitted and that bothered me so much that I didn't know. But now it makes sense, technically there is a 2 to the power of zero which is where the 1 comes from. Thank you!!!!!!!
@NERDfirst
Жыл бұрын
Hello and thank you very much for your comment! Glad to be of help =)
Great stuff! This video was in fact published just before we were going to cover it in class. Coincidence?
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! Heh, as much as I'd like to say I carefully calculated the timing to coincide with the uni semester, I'm afraid it's complete coincidence =P
THANKS MAN..
@NERDfirst
3 жыл бұрын
You're welcome! Glad to be of help =)
Damn, so clearly explained, man when I read in books I didn't understand at all 🤣🤣🤣
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! Glad to be of help =)
Hello and thank you for your video, bro...
@NERDfirst
4 жыл бұрын
You're welcome! Glad you liked the video =)
great video.
@NERDfirst
3 жыл бұрын
Hello and thank you for your comment! Glad you liked the video =)
THANK U
@NERDfirst
4 жыл бұрын
You're welcome! Glad to be of help =)
thank you! this video really helpfully for newbie as me T^T
@NERDfirst
3 жыл бұрын
You're welcome! Very happy to be of help =)
You're a legend
@NERDfirst
4 жыл бұрын
Cheers! Glad to be of help =)
Nice explanation/narration. Nice animations and graphical illustrations. Clear and concise while being thorough enough. The light reflections in your glasses are somewhat distracting tho...
@NERDfirst
3 жыл бұрын
Hello and thank you very much for your comment! The reflections are hard to avoid when you want to light someone face-on, unfortunately! I've been experimenting with other placements to see the effect.
ty
@NERDfirst
2 жыл бұрын
You're welcome! Happy to be of help =)
nice video very good
@NERDfirst
2 жыл бұрын
Hello and thank you for your comment! Glad you liked the video :)
Thanks
@NERDfirst
3 жыл бұрын
You're welcome! Glad you liked the video =)
awesome!!!!!
@NERDfirst
3 жыл бұрын
Hello and thank you for your comment! Happy to be of help =)
thank you.
@NERDfirst
Жыл бұрын
You're welcome! Glad to be of help =)
I LOVE YOU MAHN 😭😭
Thx, bro, you get the job done. There is no misunderstanding here now.
@NERDfirst
4 жыл бұрын
You're welcome! Very happy to be of help =)
Excelente!
@yaribnevarez2541
4 жыл бұрын
Thanks!
@NERDfirst
4 жыл бұрын
You're welcome! Glad to be of help =)
Hey man, great video! Could you explain why the exponent is represented with an offset and not another representation such as 2-complement? Thanks for the video!
@NERDfirst
7 ай бұрын
Hello and thank you for your comment! The short answer would be "That is how it's designed", but naturally I was curious also as to why it was designed this way. Some people suggest that this helps with comparing two numbers - With the offset representation you could simply compare the bit strings of two floating point numbers as if they were integers and the answer would be correct. I wasn't able to find an official source to say that this is the reason why it was designed like that but it does seem to make a lot of sense. Some sources where this is discussed: employees.oneonta.edu/zhangs/csci201/IEEE%20Floating%20Point%20Format.htm stackoverflow.com/questions/2835278/what-is-a-bias-value-of-floating-point-numbers
My question is how large is the range of values able to be represented with this system, and what solutions/alternatives are used to represent larger or smaller numbers outside the range. Obviously floating point rounding will make some stuff imprecise, but I mean what is the largest and smallest absolute value for this?
@NERDfirst
11 ай бұрын
Hello and thank you for your comment! To derive the largest and possible floating point values, the technique is to go for the largest possible exponent and mantissa. Then, flip the sign - The positive version is the largest possible value and the negative version is the smallest. Usually we also want to consider the smallest magnitude number (ie. The smallest positive number). For that, you'll need to go for the smallest denormal number (in which all exponent bits are zero), and only the least significant bit of the mantissa is 1. These have been worked out for 32-bit floats here but you technically do this for any bit length: stackoverflow.com/questions/32193791/single-precision-floating-point-format-range The simple solution to getting a larger range is to either use more bits, or to simply not use floats at all. Using strings or BigDecimal strategies are possible alternatives.
well, finally i could work out my self after a very long time. because i couldn't understand way i always got incorrect result on my end., but i rather got the Big-endian correct, and when i tryed to swap the bytes i got a huge number. Turns out after a few hour, the HeX editor was telling in E notation... so my answer was correct for a long time, because i didn't see the "e"
@NERDfirst
4 жыл бұрын
Hello and thank you for your comment! What's important is that you figured it out =)
@batteryman2852
4 жыл бұрын
@@NERDfirst Yes indeed, i wrote a function 2 days ago that turned 8 bytes to float64 manually.., which then turned into a wall of text in code ...oh dear..., but anyway, the only weird thing, 4 decimal back, it rounded up. i guess that's a floating point quirk on my cpu or compiler
Oh now I understand why we have to subtract 127: cause the exponent is 8 bit, so the max of it is 0-255. Inorder to represent smaller number(by multiply it with 2^-5 for ex), we have to represent the exponent in negative number => Split 255 in half = 127. And a second problem is why 2^ but not 10^ because by using base 2, we can convert bit to float and float to bit 😁
@NERDfirst
9 ай бұрын
Hello and thank you for your comment! I would say simply that we use Base 2 because computers represent information in binary. Even when it's in bits (base 2), it already _is_ a floating point number,