将十六进制文件转换为浮点数php

问题描述:

我正在读取SQL数据库中的BLOB。该文件应该包含1024浮点值对,但我不知道如何转换它们。这是我的查询:将十六进制文件转换为浮点数php

$stmt = $sqlHandle->query('SELECT convert (varchar (max), convert (varbinary (max), blob)) AS dump FROM data WHERE id = 200 

这让我有32842个字符,它开始像这样的字符串: 0x000008044072A051E00000004072AD70A00000004072BA​​8F600000004072C7AE200000004072D4CCC00

我不知道斑是如何产生的。我只是说,第一对应该看起来类似于这个转换后: 248.23112 0.000048741

有人可以向我解释如何获得字符串转换?

<?php 
    var_dump(hexdec("0x000008044072A051E00000004072AD70A00000004072BA8F600000004072C7AE200000004072D4CCC00")); 
    ?> 
+0

这将返回一个单值:float(4.180510645326E + 93)。所以我想我需要砍掉弦,对吧?但是如何?我没有很高兴地使用十六进制数字... – Sikarjan

+0

只是使用imploade()这里的一个例子https://www.w3schools.com/php/showphp.asp?filename=demo_func_string_implode –

+0

我不相信内爆是帮助这里。字符串已经有点崩溃了。我需要弄清楚字符串的哪一部分是一个数字。 0x代表剩下的是十六进制,对吧?但后来我迷了路。在哪里das第一个数字开始和多少个字符属于它... – Sikarjan