将十六进制转换为浮点SQL
我试图找到一种在SQL Server中将将十六进制转换为浮点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(
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)
我希望我能获得荣誉,但唉:
还有,有趣的博客