gpt4 book ai didi

sql - 将十六进制转换为浮点 SQL

转载 作者:行者123 更新时间:2023-12-01 12:28:07 29 4
gpt4 key购买 nike

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

一个示例值是 0x42c80000 ,它对应于 100.00

使用 Hex 将此 Int 值转换为 CONVERT 很容易,但我找不到等效的浮点转换。

最佳答案

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)

希望我能获得荣誉,但唉: http://multikoder.blogspot.com.au/2013/03/converting-varbinary-to-float-in-t-sql.html

另外,有趣的博客 https://blogs.msdn.microsoft.com/psssql/2010/11/01/how-it-works-sql-parsing-of-numbers-numeric-and-float-conversions/

关于sql - 将十六进制转换为浮点 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37523874/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com