Accelerometer gives wrong values for stationary axes
You are getting a value of 0xFD72 which works out as -654 not 64,882. In 2g range mode that works out as -39.9mg. About what I would expect.

-- Additional information

As noted in comments below, this is a 2's compliment signed number. That is the standard way of representing signed numbers in a computer or electronic system.

Treat the most significant bit as indicating -32768 rather than +32768 and then add the other bits as normal e.g.

1000_0000 0000_0000 (0x8000) = -32768

1000_0000 0000_0001 (0x8001) = -32768 + 1 = -32767

1111_1111 1111_1111 (0xFFFF) = -32768 + 32767 = -1

You shouldn't need to do this conversion yourself, just tell the compiler that the value is a 16 bit signed value and it should understand it correctly (e.g. in c store it as an int16_t)

With 16 bits you can represent any value between -32768 and +32767. In 2g range mode the senor you are using outputs a value of g/16384 giving a range of +/- 2g

Also when dealing with binary numbers it is normal to use hexadecimal rather than writing the binary. It's quicker and far less error prone, since each character relates to 4 bits it's quick and easy to convert between binary and hex as needed.