| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1248 人关注过本帖
标题:求教如何突破程序中16进制转换限制
取消只看楼主 加入收藏
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:1 
求教如何突破程序中16进制转换限制
请教,下面这段程序,最大只能将“7FFFFFFF”转换成十进制,再大就报溢出错误了,我猜想,这是Long的限制,因为Long最大也就是到“7FFFFFFF”,但计算机自带的计算器则并没有这个现象,可达到“7FFFFFFFFFFFFFFF”,它是怎样计算的呢?求能突破“7FFFFFFF”限制的方法,谢谢!

程序代码:
Private Sub Command1_Click()
    Print HEX_to_DEC("80000000")
End Sub

Public Function HEX_to_DEC(ByVal Hex As String) As Long
    Dim i As Long
    Dim b As Long
    
    Hex = UCase(Hex)
    For i = 1 To Len(Hex)
        Select Case Mid(Hex, Len(Hex) - i + 1, 1)
        Case "0": b = b + 16 ^ (i - 1) * 0
        Case "1": b = b + 16 ^ (i - 1) * 1
        Case "2": b = b + 16 ^ (i - 1) * 2
        Case "3": b = b + 16 ^ (i - 1) * 3
        Case "4": b = b + 16 ^ (i - 1) * 4
        Case "5": b = b + 16 ^ (i - 1) * 5
        Case "6": b = b + 16 ^ (i - 1) * 6
        Case "7": b = b + 16 ^ (i - 1) * 7
        Case "8": b = b + 16 ^ (i - 1) * 8
        Case "9": b = b + 16 ^ (i - 1) * 9
        Case "A": b = b + 16 ^ (i - 1) * 10
        Case "B": b = b + 16 ^ (i - 1) * 11
        Case "C": b = b + 16 ^ (i - 1) * 12
        Case "D": b = b + 16 ^ (i - 1) * 13
        Case "E": b = b + 16 ^ (i - 1) * 14
        Case "F": b = b + 16 ^ (i - 1) * 15
        End Select
    Next i
    HEX_to_DEC = b
End Function



搜索更多相关主题的帖子: Case Long End 进制转 限制 
2023-05-19 05:52
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
收藏
得分:0 
以下是引用阳光上的桥在2023-5-19 07:49:19的发言:

VB不支持128位的数据类型,最大就是64位的LONG,要支持更大的整数运算可以用字符串来编程实现。

能麻烦版主大大给个例子吗?
2023-05-19 08:33
快速回复:求教如何突破程序中16进制转换限制
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059621 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved