Mr. Sample is correct.
000000 4150F5C3 DC E'5.06'
000004 41500000 DC E'5'
000008 3FF5C28F DC E'.06'
The first 7 bits are the sign and a power of 2 exponent; the remaining 24 bits represent the "mantissa". To add the two numbers, the computer first adjusts the second number so the exponents are equal.
3FF5C28F -> 400F5C28 -> 4100F5C2. It then adds the adjusted mantissas 500000+ 00F5C2 = 50F5C2 and then inserts the exponent 41. Then it shifts the mantissa and adjusts the exponent so the first 4 bits of the mantissa are not 0. Notice there is no decimal point as such in this arithmetic.
Translating the 4150F5C2 so it prints as 5.06 is non trivial; I won't try to discuss it here.
Notice we lost the low order bits in the shifting at the beginning. IBM's first floating point implementation on the 704/709/7090/8094/7040/7044 worked similarly, but the exponent had 11 bits and the mantissa had 24 bits in a 36 bit word in storage and register. The right shift lost 1 bit for each 1 bit change in the exponent, compared to 4 bits for each 1 bit change in the exponent.
There was a huge stink about losing bits in the 1960s; IBM was forced to make a radical hardware change to minimize the effect; if you read the floating point section in Principles of Operation you will come across an extended discussion of "guard digits" that describes this change in detail.
I studied the issue about exponent and mantissa size very carefully in the 1960s. I came to these conclusions
- If the exponent had stayed at 11 bits, the mantissa would drop to 20 bits, and I think IBM judged that was too small.
- If they did 1 bit shifts with a 7 bit exponent, the number range would be too small. I figured out what the value range would have been; in 1966 I could do this then, but can't do it now, and the value range was pitiful.
The floating point Mr. Sample and I have been discussing is now called "hexadecimal" floating point to differentiate it from "binary" or "IEEE" floating point. The IEEE standard was developed in the 1980s, and Intel very successfully adopted it in a floating point co-processor used with the Intel 8088 / 8086 micro computer chips, and later incorporated into the Intel 80386 and later micro computer chips. IBM added IEEE floating point to the mainframes as an extension in the 1990s. There is also an IEEE decimal floating point standard which you can now use, but I know very little about this standard.