VB 10进制转16进制问题

知道一般的情况可用Hex来求~~但大的数(比如:888888888888)就提示溢出了~~~如果现在要写一个小程序,可转换一些比较大的10进制数字到16进制。。该怎么写呢... 知道一般的情况可用Hex来求~~
但大的数(比如:888888888888)就提示溢出了~~~

如果现在要写一个小程序,可转换一些比较大的10进制数字到16进制。。该怎么写呢 ??

以两个文本框和一个按钮为例!
展开
 我来答
lxz1969
2008-09-20 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8524
采纳率:33%
帮助的人:1.1亿
展开全部
终于写出来了,任意长度的十进制数转换为十六进制数,完全按要求:两个文本框和一个按钮,其中Text1输入十进制数,单击按钮,在Text2中显示相应的十六进制数。
Private Sub Command1_Click()
Dim R As String, S As String
R = Text1.Text
S = Ten16(R)
Text2.Text = S
End Sub

Private Function Ten16(ByVal X As String) As String '十进制数转为十六进制数,以字符串输入输出
Dim A() As String, M As Integer, N As Integer, R As String, i As Integer, L As Integer
Do While X <> ""
L = Len(X)
ReDim A((L - 1) \ 3)
R = X: i = 0
Do While Len(R) > 3
A(i) = Left(R, 3): R = Right(R, Len(R) - 3)
i = i + 1
Loop
A(i) = R
R = ""
For i = 0 To UBound(A)
M = Val(A(i)) \ 16: N = Val(A(i)) Mod 16
If Len(Trim(Str(M))) = 2 And i < UBound(A) Then
R = R + "0" + Trim(Str(M))
Else
R = R + Trim(Str(M))
End If
If N = 0 Then R = R + "0"
If i = UBound(A) Then
Ten16 = Hex(N) + Ten16
Exit For
End If
A(i + 1) = Trim(Str(N)) + A(i + 1)
Next i
R = Replace(R, " ", "")
Do While Left(R, 1) = "0"
R = Right(R, Len(R) - 1)
Loop
X = R
Loop
Ten16 = Replace(Ten16, " ", "")
End Function
dl_会飞的青蛙
2008-09-19 · TA获得超过2456个赞
知道大有可为答主
回答量:3294
采纳率:0%
帮助的人:3388万
展开全部
http://zhidao.baidu.com/question/32666159.html

看下这个估计你就明白了!~

写的挺详细的了!~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ljl88900
2008-09-20 · TA获得超过2661个赞
知道大有可为答主
回答量:2197
采纳率:100%
帮助的人:2638万
展开全部
结果是:CEF5E80E38
这里涉及到大数精确计算的问题,需单独编程才能实现。
由于代码长,所以这里就不贴了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tespo
2008-09-19 · TA获得超过250个赞
知道答主
回答量:236
采纳率:0%
帮助的人:221万
展开全部
试试定义Currency类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
历又
2008-10-04 · TA获得超过299个赞
知道小有建树答主
回答量:726
采纳率:100%
帮助的人:454万
展开全部
楼上的高手,你的答案有点问题啊,你试试输入16,或32看看啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式