VB 16进制转10进制的问题

代码如下:PrivateSubCommand1_Click()STText1EndSubPrivateSubST(xAsString)DimsAsInteger,aAsI... 代码如下:
Private Sub Command1_Click()
ST Text1
End Sub

Private Sub ST(x As String)
Dim s As Integer, a As Integer, i As Integer
For i = 1 To Len(x)
x = Mid(x, i, 1)
If Asc(x) >= 65 And Asc(x) <= 70 Then
a = Asc(x) - 55
If Asc(x) >= 97 And Asc(x) <= 102 Then
a = Asc(x) - 87
Else
a = x
End If
End If
If Len(x) - i = 0 Then
s = s + a
Else
s = s + a * 16 * (Len(x) - i)
End If
Next i
Text2 = Text2 & s
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii < 65 Or KeyAscii > 70) And (KeyAscii < 97 Or KeyAscii > 102) And (KeyAscii < 48 Or KeyAscii > 57) Then
i = MsgBox("请输入16进制数")
End If
End Sub
我的在TEXT1里面输字母结果就是0,输数字就提示ASC(X)错误呢?
我这里是单独算的16进制数转换10进制
请问算法上有什么不对吗?
展开
 我来答
qiouyulei
2007-12-03
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
Private Sub Command1_Click()
Text2.Text = ""
ST Text1.Text
End Sub

Private Sub ST(strz As String)
Dim s As Integer, a As Integer, i As Integer, strg As String 'strz是你输入的16进制数
For i = Len(strz) To 1 Step -1
strg = Mid(strz, i, 1)
If Asc(strg) >= 65 And Asc(strg) <= 70 Then
a = Asc(strg) - 55
ElseIf Asc(strg) >= 97 Then
a = Asc(strg) - 87
Else
a = strg
End If
s = s + a * 16 ^ (i - 1)
Next i
Text2 = Text2 & s
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii < 65 Or KeyAscii > 70) And (KeyAscii < 97 Or KeyAscii > 102) And (KeyAscii < 48 Or KeyAscii > 57) Then
i = MsgBox("请输入16进制数")
End If
End Sub
我也刚学VB``希望能帮上你``
你的代码里这句
s = s + a * 16 * (Len(x) - i)算法错误
该写成s=s+a*16^(len(x)-i)
VB妮可
2007-12-03
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
至于么?

你在text1输入的16进制数想转换为10进制只需要

Private Sub Command1_Click()
text2= clng( "&H" & text1)
End Sub

你的转换思路很奇怪呵..
而且代码也有很大问题呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友351c75670
2007-12-03
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
其实你的程序只是对变量类型的运用错误,x=mid..那个换个一变量:tmp=mid....。思路一点都不奇怪,很正常的进制转换的思路。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shmily4517
2007-12-03
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
是不是字母的大小写问题,大小写的ASC码不一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式