野猫III 发表于 2006-7-21 16:28:35

请教个VB程序从16进制转到10进制的问题~

Private Sub Command1_Click()
a = Text1.Text
b = Len(a)
Dim d As Long
For i = 1 To b
C = C + Hex(Asc(Mid(a, i, 1)))
Next i
d = d + C
Text2.Text = d
End Sub

'例:我 16进制是:CED2
'无符号数: 52946    有符号数: -12590
'我们所要的结果是要把“我”字转成10进制的52946

野猫III 发表于 2006-7-21 17:22:32

试了一下,好像这个不行!
text1.text="英雄!"

caterpilla 发表于 2006-7-21 18:17:59

没装VB,不过感觉解答并不正确。。。。。。。。。。

caterpilla 发表于 2006-7-21 18:29:03

原帖由 weixq 于 2006-7-21 18:26 发表
哪里不正确?????????
我觉得这种基本的功能,决不会写得这么丑陋,这段程序读起来一点也不舒服,呵呵。

快雪时晴 发表于 2006-7-21 19:07:55

some some

[ 本帖最后由 快雪时晴 于 2006-7-21 19:26 编辑 ]

浮云思音 发表于 2006-7-21 21:10:34

原帖由 快雪时晴 于 2006-7-21 19:07 发表
some some


老大,这是讨论VB代码啊,怎么弄个易的,这个不算,快补个VB的来;P

浮云思音 发表于 2006-7-21 21:26:45

如果单用"我"字测试,二楼的代码得出的结果是52946,是正确的,四、五楼的代码得出的结果是52945,不正确


请更正~~~

快雪时晴 发表于 2006-7-21 21:53:05

大家可以停止讨论了

VB的更简单





Private Sub Command1_Click()
v = ""

For i = 1 To Len(Me.Text1)
    c = Mid(Me.Text1, i, 1)
    a = Asc(c)
    If a < 0 Then a = 65536 + a
    v = v + CStr(a) + " "
Next
Me.Text2 = v
End Sub

caterpilla 发表于 2006-7-21 22:13:51

原帖由 快雪时晴 于 2006-7-21 21:53 发表
VB的更简单





Private Sub Command1_Click()
v = ""

For i = 1 To Len(Me.Text1)
    c = Mid(Me.Text1, i, 1)
    a = Asc(c)
    If a < 0 Then a = 65536 + a
    v = v + CStr ...
高!!!

pentacle 发表于 2006-7-22 00:13:29

是的

0xFFFF+0x1+a
页: [1] 2
查看完整版本: 请教个VB程序从16进制转到10进制的问题~