Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
将十六进制转换为浮点SQL_Sql_Sql Server_Floating Point_Hex - Fatal编程技术网

将十六进制转换为浮点SQL

将十六进制转换为浮点SQL,sql,sql-server,floating-point,hex,Sql,Sql Server,Floating Point,Hex,我试图找到一种在SQL Server中将HEX转换为float的方法 示例值为0x42c80000,对应于100.00 使用convert很容易将这个Hex值转换为Int,但我找不到等效的浮点转换 DECLARE @BinaryFloat AS VARBINARY(4); SET @BinaryFloat = CONVERT(VARBINARY, '0x42c80000',1); SELECT SIGN(CAST(@BinaryFloat AS INT)) * (1.0 + (CAST(

我试图找到一种在SQL Server中将
HEX
转换为
float
的方法

示例值为
0x42c80000
,对应于
100.00

使用
convert
很容易将这个
Hex
值转换为
Int
,但我找不到等效的浮点转换

DECLARE @BinaryFloat AS VARBINARY(4); 
SET @BinaryFloat = CONVERT(VARBINARY, '0x42c80000',1);

SELECT SIGN(CAST(@BinaryFloat AS INT))
  * (1.0 + (CAST(@BinaryFloat AS INT) &  0x007FFFFF) * POWER(CAST(2 AS REAL), -23))
  * POWER(CAST(2 AS REAL), (CAST(@BinaryFloat AS INT) & 0x7f800000) / 0x00800000 - 127)
我希望我能获得荣誉,但唉:

还有,有趣的博客