1)VB使用H前缀拼接十六进制字符串,可作为16进制数直接使用。
创新互联建站主营石柱土家族网站建设的网络公司,主营网站建设方案,app软件定制开发,石柱土家族h5成都微信小程序搭建,石柱土家族网站营销推广欢迎石柱土家族等地区企业咨询
适当范围内的数字,前缀以 H,可以直接表示十六进制数字。例如,十六进制表示法的 H10
代表十进制的 16。
2)使用Hex 函数可返回代表十六进制数值的 String。
Hex 函数示例:
本示例使用 Hex 函数来得到某数值的 16 进制值。
Dim MyHex
MyHex = Hex(5) ' 返回 5。
MyHex = Hex(10) ' 返回 A。
MyHex = Hex(459) ' 返回 1CB。
3)十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。
4)在串口通信工程中的实际使用:
Private Sub MSComm1_OnComm() '接收数据
Dim strBuff As String
Select Case MSComm1.CommEvent
Case 2
MSComm1.InputLen = 0
strBuff = MSComm1.Input
BytReceived() = strBuff
jieshou
lenInput = Len(strData)
Text2 = lenInput \ 2
'数据处理代码
End Select
End Sub
Public Function jieshou() '接收数据处理为16进制字符串
Dim i As Integer
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData "0" Hex(BytReceived(i))
Else
strData = strData Hex(BytReceived(i))
End If
Next
RichTextBox1.Text = strData
End Function
有两种办法可以补全前面的0,一种是直接往前面填缺少的0
比如要两位的十六进制,可以用:
String(2-Len(Hex(a)),
"0")
Hex掸姬侧肯乇厩岔询唱墨(a)
还有一种方法类似于内存存储,有三行代码
Dim
b
As
String
'定义缓存变量
b
=
String(2,
"0")
'填充0的位置,长度为2
Mid(b,
1)=StrReverse(Hex(a))
'将十六进制反向,插入到b变量的头部(第一个字开始)
b=StrReverse(b)
'将b反向(因为刚才加到变量头部是反向的,现在将b反向,就相当于是正向从尾部开始填充)
在VB里计算一般不需要考虑进制,除非计算方式是针对某个进制的,比如二进制的与运算(AND)。只有在显示时才需要进行一定的转换,16进制可以调用
hex()
函数,8进制调用
Oct()
,这将返回对应进制形式的字符串。
在数字前添加
H,VB就知道这个是16进制的数字,不需要额外的转换。8进制是添加
o(字母O)
比如两个16进制数字
A0(160)和B0(176)相加:
n
=
HA0
+
HB0
'这里按10进制的话
n=336
Text1.Text
=
hex(n)
'以16进制形式显示为:150
如果是变量,就不用考虑进制的问题,只要赋值时注意一下就可以了
a=HA0
b=HB0
n=a+b
Text1.Text
=
hex(n)
'结果同上