在VB中如何表示十六进制单字节的加减法?如:0-(00+03+08+39+54+45+58+54+30+31+0d+09+03),用VB代码如何写?注意:由于以上括号中的数据是随程序运行而变化的,所以不能写成:&H0-(&H00+&H03+&H08+&H39+&H54+&H45+&H58+&H54+&H30+&H31+&H0D+&H09+&H03) Mod &H100。请教如何用VB代码写出该计算公式和结果?

解决方案 »

  1.   


    但是你在处理的时候是可以转化成&Hxx的形式的.
      

  2.   

    n=val("&H"& hex1)-(val("&H"& hex2)+val("&H"& hex3)+val("&H"& hex4)+val("&H"& hex5)+val("&H"& hex6)+val("&H"& hex7)+val("&H"& hex8)+val("&H"& hex9)+val("&H"& hex10)+val("&H"& hex11)+val("&H"& hex12)+val("&H"& hex13)+val("&H"& hex14)) Mod val("&H"& hex15)
      

  3.   

    你要的无非是表达式解析和计算。Google VB表达式计算 即可。
      

  4.   

    不明白,为什么随程序运行而变化就不能写成 &H 形式?自己给自己找麻烦。你是用字符串方式处理的?
    1 Split,分割;
    2 每一个子项前面补上 &H
    3 循环加每一项的 Val(strItem(i))。
      

  5.   

    也可以这样:Dim strSrc As String, strItem() As String, i As Integer, n As LongstrSrc = "00+03+08+39+54+45+58+54+30+31+0d+09+03"
    strItem = Split(strSrc, "+")
    For i = 0 To Ubound(strItem)
        n = n + Val("&H" & strItem(i))
    Next i
      

  6.   


    Option ExplicitPrivate Sub Command_Click()
        Dim strHexAdd As String
        Dim lngAdd As Long
        Dim intP As Integer
        Dim strAddArray() As String
        strHexAdd = "00+03+08+39+54+45+58+54+30+31+0d+09+03"
        strAddArray = Split(strHexAdd, "+")
        lngAdd = 0
        For intP = LBound(strAddArray) To UBound(strAddArray)
            lngAdd = (lngAdd + Val("&H" & strAddArray(intP))) Mod &H100
        Next intP
        Debug.Print "结果为:" & Right("00" & Hex(lngAdd), 2)
    End Sub