各位老师,请教一下关于转换十六进制浮点数的问题
hq240 2016-05-22 11:20:12 我现在有一个浮点数是
468EAF48
按道理转化为浮点数应该是18263.640625
我的计算过程是
然后设指数位d1,有效数据位d2
取指数位46800000,有效数据位EAF48
对应的10进制就是d1=1182793728,d2=962376
按道理说,浮点数d=(@d2+8388608)*power(2,@d1/8388608-127-23)
但是,我的计算结果=0,我想可能是计算步骤中有效位数的问题,但是究竟怎么设置才对呢?更见鬼了的是,我另一个数据库运行就是正确的,今天这个做起来就是不对的,折腾了半天了,还请教各位老师我应该如何查找问题
declare @d2 bigint,@d1 bigint
set @d2=962376
set @d1=1182793728
select a=(@d2+8388608)*power(2,@d1/8388608-127-23)
运行结果为0