On 7/29/2012 8:44 PM, Steven D'Aprano wrote:
I wish to extract the bit fields from a Python float, call it x. First I cast the float to 8-bytes:s = struct.pack('=d', x) i = struct.unpack('=q', s)[0] Then I extract the bit fields from the int, e.g. to grab the sign bit: (i & 0x8000000000000000) >> 63 Questions: 1) Are there any known implementations or platforms where Python floats are not C doubles? If so, what are they?
CPython floats are C doubles, which should be IEEE doubles. Other implementations have a different to probably the same thing.
2) If the platform byte-order is reversed, do I need to take any special action? I don't think I do, because even though the float is reversed, so will be the bit mask. Is this correct?
The math modules functions to disassemble floats will not care. -- Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list
