如题:
怎么把十进制数转化为十六进制数???有函数吗?

解决方案 »

  1.   

    Dim MyHex
    MyHex = Hex(5)   ' Returns 5.
    MyHex = Hex(10)   ' Returns A.
    MyHex = Hex(459)   ' Returns 1CB.Hex()
      

  2.   

    Hex 函数返回代表十六进制数值的 String。语法Hex(number)必要的 number 参数为任何有效的数值表达式或字符串表达式。说明如果 number 还不是一个整数,那么在执行前会先被四舍五入成最接近的整数。如果 number 为 所得为
    Null Null
    Empty 零 (0)
    任何其他的数字 最多可到八个十六进制字符。
    适当范围内的数字,前缀以 &H,可以直接表示十六进制数字。例如,十六进制表示法的 &H10 代表十进制的 16。================================================================本示例使用 Hex 函数来得到某数值的 16 进制值。Dim MyHex
    MyHex = Hex(5) ' 返回 5。
    MyHex = Hex(10) ' 返回 A。
    MyHex = Hex(459) ' 返回 1CB。
      

  3.   

    你运气真好,转成十六进制可以用HEX$()函数,但二进制的就没有
      

  4.   

    Dim TextStr As String
    Dim t As Integer
    Dim str4 As StringPrivate Function NumToOct(ByVal Octint As Long) As String
      Dim Octmod As Long
      Dim OctStr As String
    If Octint = 0 Then
       NumToOct = "0"
    Else
      Do While Octint > 0
         Octmod = Octint Mod 8
         Octint = Octint \ 8
         OctStr = Str(Octmod) & OctStr
       Loop
       NumToOct = OctStr
    End If
    End Function
    Private Function NumToBinary(ByVal inte As Long) As String
      Dim Amod As Long
      Dim Str1 As String
    If inte = 0 Then
       NumToBinary = "0"
    Else
      Do While inte > 0
         Amod = inte Mod 2
         inte = inte \ 2
         Str1 = Str(Amod) & Str1
       Loop
       NumToBinary = Str1
    End If
    End Function
    Private Function NumToHex(ByVal Hexint As Long) As String
      Dim HexMod As Long
      Dim HexStr As String
    If Hexint = 0 Then
       NumToHex = "0"
    Else
       Do While Hexint > 0
         HexMod = Hexint Mod 16
         Hexint = Hexint \ 16
         Select Case HexMod
                Case 10
                     HexStr = "A" & HexStr
                Case 11
                     HexStr = "B" & HexStr
                Case 12
                     HexStr = "C" & HexStr
                Case 13
                     HexStr = "D" & HexStr
                Case 14
                     HexStr = "E" & HexStr
                Case 15
                     HexStr = "F" & HexStr
                Case Else
                     HexStr = Str(HexMod) & HexStr
               End Select
         Loop
         NumToHex = HexStr
        End If
    End Function
    Private Sub Command1_Click()
    st = NumToOct(Text1.Text)
    st1 = NumToBinary(Text1.Text)
    st2 = NumToHex(Text1.Text)
    Text2.Text = st1
    Text3.Text = st
    Text4.Text = st2
    End SubPrivate Sub Form_Load()
    t = 1
    TextStr = "十進位轉換二,八,十六進位,目前僅支援正整數部份"End SubPrivate Sub Timer1_Timer()
    Dim str3 As Stringstr3 = Mid(TextStr, t, 1)
    str4 = str4 & str3
    t = t + 1
    Label4.Caption = str4
    If t = Len(TextStr) Then
       t = 1
       str4 = ""
    End If
    End Sub
      

  5.   

    我要是这样,十六进制和十六进制相加,如AA+02应该等于AC,可是我不知道怎么实现
      

  6.   

    a="aa"
    b="02"
    c=hex(val("&h" & a)+val("&h" & b))
    if c<>"AC" then msgbox "奇怪,系统有问题"
      

  7.   

    hex返回的是string类型,你要相加是不行的.其实你用来计算的话,完全没有必要去转换数制,数制是给你看的,不是给计算机看的,计算机用的都是2进制.所以,你计算校验和的时候该怎么算就怎么算吧,就算你调试出来是10进制表示的,但是在程序内部还是2进制,不会错的.除非是你要把校验和用16进制显示出来,才用到hex()函数,计算不用的.
      

  8.   

    就是第一个回复的兄弟说的那样,hex(num)就可以了
      

  9.   

    我給的exp是2,8,10,16進制互相轉換的呀
      

  10.   

    let sex=10
    hex val(sex)
      

  11.   

    to daisy8675(莫依)
    我用了你的函数,可是结果不对呀,比如我的十进制数17,转化为十六进制数应该为23,可是你的函数的结果为21,真的,我测试的
      

  12.   

    val("&h" & "17")=23-------------------
    a="aa"
    b="02"
    c=hex(val("&h" & a)+val("&h" & b))
    if c<>"AC" then msgbox "奇怪,系统有问题"
    已经很详细了啊
      

  13.   

    10转16可以用Hex()函数...
    MSDN中例子,如:
    Dim MyHex as string 'MSDN总不喜欢说明数据类型...
    MyHex = Hex(5)   ' 返回 5。
    MyHex = Hex(10)   ' 返回 A。
    MyHex = Hex(459)   ' 返回 1CB。16转10就更简单了!
    dim lngHex as long
    lngHex = &H1CB '只需要在16进制数的前面加上 "&H"就可以了~
    msgbox lngHex '显示结果是 459
      

  14.   

    如果已经是16进制了,你用的时候就是10进制表示的
    例如
    long i = 0x17
    msgbox i
    显示出来就是23
      

  15.   

    如果数值超常,可以看看http://expert.csdn.net/Expert/topic/2974/2974472.xml?temp=4.560488E-02