怎样转换十六进数?急!!在线等!!

skyF1 2006-02-23 04:16:00
单片机给我发过来的是十六进数,我用mscomm控件 接受字符,在vb中显示不出来,怎样转换?
...全文
103 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyF1 2006-02-23
  • 打赏
  • 举报
回复
谢谢大家,解决了!
lc_mtt 2006-02-23
  • 打赏
  • 举报
回复
汗,这样接收的根本不是16进制啊.

a1=left(bb,1)

这样a1很明显是字符串,你应该用asc(a1)来获得ascii码才行,如下:

MsgBox CStr(Hex(asc(a1)))
僵哥 2006-02-23
  • 打赏
  • 举报
回复
樓主參考一下本人在另一貼的回復,看有效果不
http://community.csdn.net/Expert/topic/4572/4572900.xml?temp=.9979364
skyF1 2006-02-23
  • 打赏
  • 举报
回复
bb = MSComm1.Input
a1 = Left(bb, 1)
MsgBox CStr(Hex(a1))
提示类型不匹配,a1 看到的是一个
benyfeifei 2006-02-23
  • 打赏
  • 举报
回复
Function HextoString(byval src() as byte) as String
dim i as Integer
dim strRet as String
dim Temp as String
On Error Goto ErrHandler:

For i=LBound(src) to Ubound(src)

Temp=Hex(src(i))
if len(Temp)<2 then Temp="0" & Temp

strRet=strRet & Temp

Next

HextoString=strRet
Exit Function

ErrHandler:
HextoString=""
End Function
lc_mtt 2006-02-23
  • 打赏
  • 举报
回复
单片机那边发过来的06 0B A5 D1 32 FF FF FF FF FF FF FF 01
我怎样把他转换成 字符串06 0B A5 D1 32 FF FF FF FF FF FF FF 01

就是我所说的啊

dim b as byte

b=6

msgbox cstr(hex(b))

这个是处理一个字节的例子,多个字节,一个循环就搞定啦,不是这个还要我帮你写吧
skyF1 2006-02-23
  • 打赏
  • 举报
回复
单片机那边发过来的06 0B A5 D1 32 FF FF FF FF FF FF FF 01
我怎样把他转换成 字符串06 0B A5 D1 32 FF FF FF FF FF FF FF 01
lc_mtt 2006-02-23
  • 打赏
  • 举报
回复
既然是十六进制,一些字符显示不出来很正常的.

例如 b as byte
b=126 '十六进制为7E

如果msgbox cstr(b)那是直接显示126的,要显示7E,你可以使用msgbox cstr(hex(b))
benyfeifei 2006-02-23
  • 打赏
  • 举报
回复
如果单片机发送过来的十六进制数据只含有ASCII码的字符,那么将MSComm.InputMode=comInputModeText,接收到数据可以直接转成字符串;如果发送的数据中含有双字节字符,则先用二进制格式接收,然后再进行手动转换。

7,763

社区成员

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

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