Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Floating point 64位十六进制转换为十进制_Floating Point_Type Conversion_Hex_Data Conversion - Fatal编程技术网

Floating point 64位十六进制转换为十进制

Floating point 64位十六进制转换为十进制,floating-point,type-conversion,hex,data-conversion,Floating Point,Type Conversion,Hex,Data Conversion,我有一个16位十六进制值: 4164ACFCE33404EA 转换后的数字为: 10840039.1001 我已经尝试了IEEE单精度和双精度64位到十进制以及各种16位两次互补转换,但都没有成功。有什么想法吗 问题中的十六进制值显示了IEEE-754基本64位二进制格式中用于表示浮点数的位 第一位0是符号。0表示正 接下来的11位41616对指数进行编码。41616是104610。代码偏移了1023,这意味着它表示的2的实际幂为21046−1023=223 剩余的52位对数字的有效位(分数)部

我有一个16位十六进制值:

4164ACFCE33404EA

转换后的数字为:

10840039.1001


我已经尝试了IEEE单精度和双精度64位到十进制以及各种16位两次互补转换,但都没有成功。有什么想法吗

问题中的十六进制值显示了IEEE-754基本64位二进制格式中用于表示浮点数的位

第一位0是符号。0表示正

接下来的11位41616对指数进行编码。41616是104610。代码偏移了1023,这意味着它表示的2的实际幂为21046−1023=223

剩余的52位对数字的有效位(分数)部分进行编码。这些位是4ACFCE33404EA16。为了从这段代码中获得实际的有效位,我们将它们写为“1”。后面是代码:1.4ACFCE33404EA16。十进制数为1.29223335982561104984256417083088308572769165039062510

当我们将有效位乘以223时,结果是10840039.100099949575977325439453125。这是由位4164ACFCE33404EA16表示的值

笔记 带有效位的“1”用于普通数字,其中编码指数不是0或其最大值。如果指数代码为零,则数字为零或低于正常值,“0.”与有效位一起使用。如果指数代码是其最大值(对于64位格式为2047),则浮点对象表示无穷大(如果所有有效位均为零)或NaN


在64位格式中,十六进制数字恰好与指数字段和有效位字段之间的边界对齐。在其他格式(如32位格式)中,您必须移动一些位来分隔字段,而不仅仅是直观地提取十六进制数字。

这似乎是64位而不是16位…编码为ieee754,