 |
李海的意见:
使用Val()函数,如:
s1 = "AA"
s2 = "BB"
s = "&H" + s1 + s2 ' 此时s="&HAABB"
Print Val(s)
王豫翔的意见:
我在开发CPU卡时同样遇到这个问题,我写了一个通用函数:(大概是以下这样)
Dim i As Integer
Dim ii As Integer
Dim bb As String
Dim cc As Double
Dim aa As String
aa = "aabbccdd"
if aa mod 2 <>0 then "0"+aa
For i = 1 To Len(aa) / 2
bb = Val("&H" + Left(Right(aa, i * 2), 2)) * 256 ^ ii
ii = ii + 1
cc = cc + Val(bb)
Next i
最终得到的CC就是你要的数值。
void main(){}的意见:
下面的函数很容易使用:
CByte() ' unsigned char
CInt() ' int
CLong() ' long
CDec() ' up to 2^96
..
参数可以是"&H..."字符串。
sub main()
dim char_val as string
char_value = ""
char_value = "&HFFFFFFFF" '-1 = 0xffffffff
dim long_value as long
long_value=0
long_value=CLng(char_value)
call msgbox (CStr(long_value),,"value of a hex string")
end sub
你可以看到消息框显示"-1"。
但是记住: 不要使用大于2147483647(4294967296/2-1, 2^31-1)或小于-2147483647的数, 否则程序会退出。另外,这个依赖于缓冲的大小(变量类型: unsigned char, short或long)
此问题由李海等回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 其他方面, 。
|