Q:

How to convert 2+(2/7) to IEEE 754 floating point

Can someone explain to me the steps to convert a number in decimal format (such as 2+(2/7)) into IEEE 754 Floating Point representation? Thanks!

A:

First, 2 + 2/7 isn't in what most people would call "decimal format".  "Decimal format" would more commonly be used to indicate a number like:
2.285714285714285714285714285714285714285714...

Even the ... is a little bit fast and loose.  More commonly, the number would be truncated or rounded to some number of decimal digits:
2.2857142857142857

Of course, at this point, it is no longer exactly equal to 2 + 2/7, but is "close enough" for most uses.
We do something similar to convert a number to a IEEE-754 format; instead of base 10, we begin by writing the number in base 2:
10.010010010010010010010010010010010010010010010010010010010010...

Next we "normalize" the number, by writing it in the form 2^e * 1.xxx... for some exponent e (specifically, the digit position of the leading bit of our number):
2^1 * 1.0010010010010010010010010010010010010010010010010010010010010...

At this point, we have to choose a specific IEEE-754 format, because we need to know how many digits to keep around.  Let's choose "single-precision", which has a 24-bit significand.  We round the repeating binary number to 24 bits:
2^1 * 1.00100100100100100100100  10010010010010010010010010010010010010...
           24 leading bits          bits to be rounded away

Because the trailing bits to be rounded off are larger than 1000..., the number rounds up to:
2^1 * 1.00100100100100100100101

Now, how does this value actually get encoded in IEEE-754 format?  The single-precision format has a leading signbit (zero, because the number is positive), followed by eight bits that contain the value 127 + e in binary, followed by the fractional part of the significand:
0 10000000 00100100100100100100101
s exponent fraction of significand

In hexadecimal, this gives 0x40124925.

