急,大家帮我看看,16进制数前+0的问题

Kstudy 2009-02-19 01:10:37
现在是用字节数组保存的数据,希望每两个字节保存为一个有效数据,现在我转换为16进制了,也用format强制+0了,就是不是数字(十六进制A、B、C、D、E、F)就不加啊,郁闷!
...全文
174 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kstudy 2009-02-19
  • 打赏
  • 举报
回复
谢谢大家,我想得复杂了,直接用10进制处理就好了,因为数据比较多,所以想搞个函数来弄

不过函数的方法希望大家能给我个参考,比如
函数A(变量为字节型) 返回字符串

具体处理

结束

调用的时候A里面的变量怎么引用?是不是搞个字节型的数据就好了?
ftz820127 2009-02-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Kstudy 的回复:]
我想写个函数来处理
Public Function con(inbt() As Byte) As String
Dim data As Long
Dim buf As String
Dim i As Byte
'For i = 3 To UBound(inbt) - 2
data = Hex(inbt(i))
If Len(data) = 1 Then buf = "0" & "data"
con = buf
' Next i
End Function

可是引用到这个函数时就说“缺少数组或用户定义类型”,怎么回事?
[/Quote]
你写的本身就有问题Dim data As Long定义长整型
data = Hex(inbt(i)),又要把字符弄的赋值给它
Len(data),这句也有问题,buf = "0" & "data"这个也是


Dim a(1 To 20) As Byte
Dim i As Integer
Dim strHex As String

strHex = ""
For i = 1 To 20
strHex = strHex & Right("00" & Hex(a(i)), 2) & " "
Next
Debug.Print strHex

这个不知道是不是你想要的结果
cxh02468 2009-02-19
  • 打赏
  • 举报
回复
String(2- Len(Hex(b(i))),"0") & Hex(b(i))
这样是不是简单些
wxrwan 2009-02-19
  • 打赏
  • 举报
回复
同意6 楼
Kstudy 2009-02-19
  • 打赏
  • 举报
回复
我想写个函数来处理
Public Function con(inbt() As Byte) As String
Dim data As Long
Dim buf As String
Dim i As Byte
'For i = 3 To UBound(inbt) - 2
data = Hex(inbt(i))
If Len(data) = 1 Then buf = "0" & "data"
con = buf
' Next i
End Function

可是引用到这个函数时就说“缺少数组或用户定义类型”,怎么回事?
zdingyun 2009-02-19
  • 打赏
  • 举报
回复

For i = 0 To UBound(binRec)
If Len(Hex(binRec(i))) = 1 Then
strRec = strRec & "0" & Hex(binRec(i))
Else
strRec = strRec & Hex(binRec(i))
End If
Next
ftz820127 2009-02-19
  • 打赏
  • 举报
回复
本来是2位你取右边2位还是他本身
本来是1位加上2位变3位取右边2位还是2位
Kstudy 2009-02-19
  • 打赏
  • 举报
回复
谢谢楼上大哥
不过这样是强制加一个0,我是想1位的时候+,如果他本来就两位,数据就不对了
ftz820127 2009-02-19
  • 打赏
  • 举报
回复
right("00" & "A",2)
Kstudy 2009-02-19
  • 打赏
  • 举报
回复
不想通过判断长度来添加0,那样太麻烦了
Kstudy 2009-02-19
  • 打赏
  • 举报
回复
没有人来看看么

7,762

社区成员

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

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