串口通信,数据处理,unicode转换,大侠来急救,搞了2天了,没想明白

charly_ye 2007-08-07 07:08:10
在下现在做串口通信,使用modbus协议
问题就是 vb的unicode带来的
byte的数组 中2个byte为数据位置,其实里面是4个byte的空间
data(0)=0
data(1)=1
实际表示的数值是 00 01
当我输入比较小的数值的时候,直接写入数组,可以使用这样的方法,
但是现在我需要写入比较大的数值,
例如,写入65514 16进制 位FF EA
想要得到的效果就是data(0)=FF data(1)=EA
Dim data1 As Long
data1 = 65514

Dim data2 As String
data2 = Hex(data1)

Dim data3() As Byte
data3 = data2

Text1.Text = UBound(data3) 显示为7个byte,里面的内容倒是正确的16进制
想要达到的效果 ubound(data3)=1 ,0 1,就是2个byte的unicode

各位大侠来帮帮忙啊,在下初学vb,以前用C,还没碰到过unicode这回事
...全文
181 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Private Sub Form_Click()
Dim data1 As Long
data1 = 655140
Dim data2 As String
data2 = Hex(data1)
Dim data3() As Byte, ls As Long, i As Long
ls = Len(data2)
If ls Mod 2 = 1 Then
data2 = "0" & data2
ls = ls + 1
End If
ReDim data3(ls / 2)
For i = 1 To ls - 1 Step 2
data3((i + 1) / 2 - 1) = "&h" & Mid(data2, i, 2)
Print data3((i + 1) / 2 - 1)
Next
End Sub

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧