Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用IEEE-754浮点约定将十进制浮点转换为64位十六进制_Python_Floating Point_Decimal_Ieee 754 - Fatal编程技术网

Python 如何使用IEEE-754浮点约定将十进制浮点转换为64位十六进制

Python 如何使用IEEE-754浮点约定将十进制浮点转换为64位十六进制,python,floating-point,decimal,ieee-754,Python,Floating Point,Decimal,Ieee 754,是否有任何解决方案可以使用IEEE-754浮点约定将十进制浮点转换为64位十六进制 我有十进制4275451536,需要转换成IEEE-754十六进制,即41EFDAC6D2000000 这是一个,但我需要用编程语言来写 如何使用Python实现这一点?如果我正确理解您的问题,您希望找到IEEE 754 binary64格式浮点数的基本二进制表示形式,并以十六进制显示该二进制表示形式 为了获得底层位,模块是您的朋友。该操作允许您将binary64表示下面的8个原始字节解释为长度为8的(字节)字符

是否有任何解决方案可以使用IEEE-754浮点约定将十进制浮点转换为64位十六进制

我有十进制4275451536,需要转换成IEEE-754十六进制,即41EFDAC6D2000000

这是一个,但我需要用编程语言来写


如何使用Python实现这一点?

如果我正确理解您的问题,您希望找到IEEE 754 binary64格式浮点数的基本二进制表示形式,并以十六进制显示该二进制表示形式

为了获得底层位,模块是您的朋友。该操作允许您将binary64表示下面的8个原始字节解释为长度为8的(字节)字符串,然后该操作将允许您将该字符串重新解释为非负整数(例如)。一旦得到整数,就很容易找到十六进制表示。以下是一个完整的数据示例:

>>> import struct
>>> x = 4275451536.0
>>> bytes_of_x = struct.pack('<d', x)
>>> bytes_of_x
'\x00\x00\x00\xd2\xc6\xda\xefA'
>>> x_as_int = struct.unpack('<Q', bytes_of_x)[0]
>>> x_as_int
4751256679360757760
>>> hex(x_as_int)
'0x41efdac6d2000000'
或全部在一行中,并使用字符串格式而不是内置的
hex
转换为十六进制字符串:

>>> '{:016x}'.format(struct.unpack('<Q', struct.pack('<d', float("4275451536")))[0])
'41efdac6d2000000'

>>'{:016x}.format(struct.unpack)(“如果我正确理解了您的问题,您希望找到IEEE 754 binary64格式浮点数的基础二进制表示形式,并以十六进制显示该二进制表示形式

对于获取底层位,模块是您的朋友。该操作允许您将binary64表示法底层的8个原始字节解释为长度为8的(字节)字符串,然后该操作将允许您将该字符串重新解释为非负整数(例如)。获得整数后,很容易找到十六进制表示形式。以下是数据的完整示例:

>>> import struct
>>> x = 4275451536.0
>>> bytes_of_x = struct.pack('<d', x)
>>> bytes_of_x
'\x00\x00\x00\xd2\xc6\xda\xefA'
>>> x_as_int = struct.unpack('<Q', bytes_of_x)[0]
>>> x_as_int
4751256679360757760
>>> hex(x_as_int)
'0x41efdac6d2000000'
或全部在一行中,并使用字符串格式而不是内置的
hex
转换为十六进制字符串:

>>> '{:016x}'.format(struct.unpack('<Q', struct.pack('<d', float("4275451536")))[0])
'41efdac6d2000000'

>'{:016x}'。格式(struct.unpack(“你输入的Python类型是什么?
float
str
?你在寻找什么输出?一个整数?或者一个给出该整数十六进制表示的字符串?Python 2或Python 3?你输入的Python类型是什么?
float
str
?你在寻找什么输出?一个整数?或者给出该整数十六进制表示形式的字符串?Python 2或Python 3?非常感谢!您的答案是有效的解决方案!!非常感谢!您的答案是有效的解决方案!!