'fld1 pushes a non-one value on to the stack [duplicate]

fld1 is supposed to push 1 on to the stack of x87, but when I looked at the value of stack, the st0 value is 0x3fff800000000000, I tried to decode the double precision float manually, the value i got is 1.96875E0, which is not 1 that I intend to load into the register, is it a bug or what?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source