用函数Oct()将十进制位数转换为八进制,用Hex()将十进制位数转换为十六进制,不过值得注意的是转换后数字型变为字符型。如果是一个变量我们可以用如下代码完成十进制向其他进制转换的目的。
    dim ANumaslong
    ANum=&O10′&O是八进制的表示符号ANum自行转换为8。
    ANum=&HA′&H是十六进制的表示符号ANum自行转换为10。
    如果我们有一个字符变量Astring为八进制的或十六进制的,用ANum=″&O″+Astring和ANum=″&H″+Astring能将它转换为十进制。
    VB中我没有找到二进制的转换函数,用如下代码可以实现十进制到二进制的转换。
    OptionExplicit
    Private Function TenturnTwo(ByValvarNumAsLong)   
     Dim returnStringAsString,ModNumAsInteger
    Do WhilevarNum>0
    ModNum=varNumMod2
    varNum=varNum\2
    returnString=Trim(Str(ModNum))+returnString
    Loop
    TenturnTwo=returnString
    End Function
    Private Function TwoturnTen(ByValvarStringAsString)
    DimSLenAsLong,I As Long,returnNumAsLong
    SLen=Len(varString)
    ForI=0ToSLen-1
    returnNum=returnNum+Val(Mid(varString,I+1,1))*(2^(SLen-I-1))
    Next
    TwoturnTen=returnNum
    End Function

解决方案 »

  1.   

    我要的是将十进制数转换为16进制数,不是ANum=&HA的方式,我举了一个例子,-590用计算器进行转换后得到的十六进制数为FFFFFDB2,我用VB应该如何实现?
      

  2.   

    dim i as long 
    i=-590
    debug.print hex(i)
      

  3.   

    wqb的方法是可以显示出FFFFFDB2,但我要用这个数参与运算,并且把B2取出来,尽显示是不够的,不知有何办法?
      

  4.   

    对不起,我答不了问题
    我想补充一个问题
    那就是我知道可十六进制的值,例如“FFAA”,我怎么用程序得到十进制呢?
    我问的问题好象太白痴了点,我的逻辑设计这门根本就没学,哎!
    人总是要成长的,让我们大家一起在CSDN里成长为新一代的高手吧!
    想吵架的人闪一边去,我们只来学习,不学习的请安静!!!
      

  5.   

    哦,我没看到
    daryl715(海军少校) 说的
    “如果我们有一个字符变量Astring为八进制的或十六进制的,用ANum=″&O″+Astring和ANum=″&H″+Astring能将它转换为十进制”对不起,浪费大家的时间了,我马上用vb6试试
    人总是要成长的,让我们大家一起在CSDN里成长为新一代的高手吧!
    想吵架的人闪一边去,我们只来学习,不学习的请安静!!!