中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

科远自动化

fluketop kollmorgen 抖音 西门子减速电机 德嘉 台达 英威腾 泓格论坛 西门子 我和LOGO!有个约会 FLIR红外热像论坛 【有奖活动】英威腾 “Ni美国国家仪器 “PLC发展趋势大讨论”活动圆满结束 艾睿光电产品体验活动 cc-link图文征集活动 西门子SMART LINE V3
工控论坛首页 科远自动化 → 浏览主题: VB字节数组,转成浮点数
发表新帖 回复该主题
回帖:2个,阅读:575 [上一页] [1] [下一页]
* 帖子主题:

VB字节数组,转成浮点数

分享到
889
john1225cn
文章数:90
年度积分:50
历史总积分:889
注册时间:2005/6/28
发站内信
08年优秀博客奖
发表于:2013/11/30 20:51:26
#0楼
---------------------------------------------
VB字节数组,转成浮点数嘿嘿,还可以吧
fareasy.taobao.com
---------------------------------------------
Public Function BIN_to_DEC(ByVal Bin As String) As Long
Dim i As Long
   For i = 1 To Len(Bin)
       BIN_to_DEC = BIN_to_DEC * 2 + Val(Mid(Bin, i, 1))
   Next i
End Function
Public Function DEC_to_BIN(Dec As Long) As String
   DEC_to_BIN = ""
   Do While Dec > 0
       DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
       Dec = Dec \ 2
   Loop
End Function
Private Sub Form_Load()
Dim B As Single
Dim Data(3) As Byte
Dim zhengfu As Integer
Data(0) = &H42 '
Data(1) = &HE4
Data(2) = &H80
Data(3) = &H0
'42E48000 = 114.25
'第一步 , 化为2进制
'0100 0010 1110 0100 1000 0000 0000 0000
'第二步:因为IEEE754使用1个符号,8个阶码,23个尾数,我们分别在上面提取这些内容.
'符号:第一位:0 表示正数
If Data(0) / 128 >= 1 Then
zhengfu = -1
Else
zhengfu = 1
End If
'阶码:2-9位:10000101 为133,实际的幂值为133-127=6
jiema = (Data(0) Mod 128) * 2 + Int(Data(1) / 128) - 127
'尾数:10-32位:11001001000000000000000,实际值为1.11001001 (1+尾数)
'weishu = (Data(1) Mod 128) * 256 * 256 + Data(2) * 256 + Data(3) '小数转数据方式?
Dim weishu As String
weishu = "1" + Format(DEC_to_BIN(Data(1) Mod 128), "0000000") + Format(DEC_to_BIN(Data(2) + 0), "00000000") + Format(DEC_to_BIN(Data(3) + 0), "00000000")
     
'第三步: 根据公式写出实际数值大小
'为1110010.01,化为十进制为:114.25
result = zhengfu * BIN_to_DEC(weishu) / (2 ^ (15 - jiema))
End Sub
[/URL]
此帖来自中华工控网工控博客
原文件地址:http://blog.gkong.com/more.asp?id=178428&Name=john1225cn
串口数据采集模块
串口数据录放机
网络远程控制器
多串口集线器
淘宝搜 rs232串口转sd卡存储 模块
淘宝点: fareasy.taobao.com
22158
zzn6737
文章数:12052
年度积分:853
历史总积分:22158
注册时间:2006/9/18
发站内信
2016国庆活动(三)
发表于:2013/11/30 23:59:32
#1楼
这个我得学习下。
有问题可加
5169
1294023404
文章数:2901
年度积分:50
历史总积分:5169
注册时间:2011/8/25
发站内信
2018春节活动(三)
2015春节活动
2013辞旧迎新
发表于:2014/1/8 10:12:09
#2楼
这个学习一下啊
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2021 Gkong.com, All Rights Reserved

46.8