问一道VB的填空题

来源:百度知道 编辑:UC知道 时间:2024/05/31 05:57:44
Val("&H"+Left$(x,Len(x)/2))的结果为什么是18?我觉得是12呀
已知字符串变量x存放“1234”
一开始忘写了,谢谢~

x="1234"
Val("&H"+Left$(x,Len(x)/2))相当于:
Val("&H"+Left$("1234",Len("1234")/2))

=Val("&H"+Left$("1234",2)) 'Left$("1234",2)是取字符串"1234"的前2个字符的意思,即返回"12"

=Val("&H"+"12")

=Val("&H12") '相当于求十六进制数12的十进制值

=18 'Val("&H12")=1*16+2=16+2=18

我这样分析你应该看得明白了吧?

x的值是多少呢?
uday100866 14:15:33
我认为也是12,在程序上
Private Sub Form_Load()
x = "1234"
y = "&H"
z = Left(x, Len(x) / 2)
m = z + y
Print Val(m)
End Sub
做出来也是

就是18,楼上qingdaofu644说的对,“&H”是表示16进制数字的。。。

在Val("&H"+Left$(1234,Len(1234)/2))中,

Len(1234)为4,

4/2为2.

然后Left$(1234,2)的结果为12,
即Val("&H12")

&H12变成10进制就是18.

哦 原来“&h”是十六进制啊
我说怎么不对呢
呵呵!懂了