dim kkk() as byte kkk = str For II = 1 To UBound(kkk) Step 2 If Len(Hex(kkk(II))) = 1 Then s1 = "0" & Hex(kkk(II)) Else s1 = Hex(kkk(II)) End If If Len(Hex(kkk(II - 1))) = 1 Then s2 = "0" & Hex(kkk(II - 1)) Else s2 = Hex(kkk(II - 1)) End If str = str & s1 & s2 Next
kkk = str
For II = 1 To UBound(kkk) Step 2
If Len(Hex(kkk(II))) = 1 Then
s1 = "0" & Hex(kkk(II))
Else
s1 = Hex(kkk(II))
End If
If Len(Hex(kkk(II - 1))) = 1 Then
s2 = "0" & Hex(kkk(II - 1))
Else
s2 = Hex(kkk(II - 1))
End If
str = str & s1 & s2
Next
kkk(0)="54"
kkk(1)="75"
了吗?
Hex(kkk(II)) 获得"54" 的16进制值吗? &36H 对吗?
s1+s2 让两个16进制直接相加吗? 在家里看的,没有VB检测,明天到单位去看看。谢谢啦
还是不慢的,事实上,OS内部就在大量使用查表法。 其实,大多数高级语言本身就带有Unicode转换函数,如VB的strConv函数,
你为什么不用呢?
dim str as string
str="中文"
strArr = StrConv(str, vbFromUnicode) 'Unicode拆成ascii的数组str=StrConv(strArr, vbUnicode) 'Unicode还原然后可以参看Hex()
===============================================================
语法Hex(number)必要的 number 参数为任何有效的数值表达式或字符串表达式。说明如果 number 还不是一个整数,那么在执行前会先被四舍五入成最接近的整数。如果 number 为 所得为
Null Null
Empty 零 (0)
任何其他的数字 最多可到八个十六进制字符。
适当范围内的数字,前缀以 &H,可以直接表示十六进制数字。例如,十六进制表示法的 &H10 代表十进制的 16。