Foxtable(狐表)用户栏目专家坐堂 → 单精度浮点


  共有2882人关注过本帖树形打印复制链接

主题:单精度浮点

帅哥哟,离线,有人找我吗?
shyilin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:271 积分:2334 威望:0 精华:0 注册:2016/6/3 8:28:00
单精度浮点  发帖心情 Post By:2021/6/17 15:50:00 [显示全部帖子]

 Dim st1 As String = "41E0F000"
Dim st2 As String = DecToBin(HexToDec(st1))
If st2.Length< 32 Then
    st2="0" & st2
End If
Dim st3 As String =st2.SubString(9)
Dim st4 As String = st3.SubString(BinToDec(st2.SubString(1,8))-127)
Dim st6 As String =BinToDec("1" & st3.SubString(0,BinToDec(st2.SubString(1,8))-127)) & "." & BinToDec(st4.SubString(0,st4.LastIndexOf("1")+1))
Dim st8 As Double
st8= (-1)^st2.SubString(0,0) * CDbl(st6)
我这样写没办法算
红字老师帮忙看看呢  怎么算呢
这个是算单精度浮点


老师还有其他方法  帮忙改一下呢

 回到顶部
帅哥哟,离线,有人找我吗?
shyilin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:271 积分:2334 威望:0 精华:0 注册:2016/6/3 8:28:00
  发帖心情 Post By:2021/6/17 16:24:00 [显示全部帖子]

FloatData=(-1)^s*1.m*2^E-127
先转成2进制  11000001111000000000000  前面如果有0会省去0  要把0补上
31 位是符号位,1 表示该数为负,0 反之;0
E: 30~23 位,一共 8 位是指数位(-128~127);:100000111转10进制计算
M: 22~ 0 位,一共 23 位是尾数位;1000000000000:



 结果是28.15

 回到顶部
帅哥哟,离线,有人找我吗?
shyilin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:271 积分:2334 威望:0 精华:0 注册:2016/6/3 8:28:00
  发帖心情 Post By:2021/6/17 17:33:00 [显示全部帖子]

好的  谢谢老师
[此贴子已经被作者于2021/6/17 17:34:45编辑过]

 回到顶部