*This solution is for the book I am currently reading. All of my notes and solutions are available at Google Code.*

Here is my work for problem 2.6:

Using show_int and show_float we determine that the integer 3490593
has hexadecimal representation 0x00354321, while the floating-point number
3490593.0 has hexadecimal represntation 0x4A550C84.
A. Write the binary representation of these two hexadecimal values.
0x00354321
0 0 3 5 4 3 2 1
0000 0000 0011 0101 0100 0011 0010 0001
00000000 00110101 01000011 00100001
0x4A550C84
4 A 5 5 0 C 8 4
0100 1010 0101 0101 0000 1100 1000 0100
01001010 01010101 00001100 10000100
B. Shift these two strings relative to one another to maximize the number of
matching bits.
00000000001101010100001100100001
01001010010101010000110010000100
*********************
|----- matches -----|
C. How many bits match? What parts of the strings do not match?
21 bits match
The beginnings and ends don't match. Most of the integer representation
is in the float except for the most signficant digit, which is 0001 (1)
instead of 0011 (3) in the int. There are also non-zero values at the
front of the float.