Floating point 64位十六进制转换为十进制
我有一个16位十六进制值: 4164ACFCE33404EA 转换后的数字为: 10840039.1001Floating 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位对数字的有效位(分数)部
我已经尝试了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,