关于VB中十六进制单字节的加减法
在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代码写出该计算公式和结果? --------------------编程问答-------------------- 转换成整数,再做加减。 --------------------编程问答--------------------
具体VB代码是怎么写的? --------------------编程问答-------------------- 没人会吗 --------------------编程问答-------------------- 和普通的加减没有什么大的区别,只要考虑进位借位要如何处理即可,因为字节里保存的就是16进制 --------------------编程问答--------------------
但是你在处理的时候是可以转化成&Hxx的形式的. --------------------编程问答-------------------- 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) --------------------编程问答-------------------- 你要的无非是表达式解析和计算。
Google VB表达式计算 即可。 --------------------编程问答-------------------- 不明白,为什么随程序运行而变化就不能写成 &H 形式?自己给自己找麻烦。
你是用字符串方式处理的?
1 Split,分割;
2 每一个子项前面补上 &H
3 循环加每一项的 Val(strItem(i))。
--------------------编程问答-------------------- 也可以这样:
Dim strSrc As String, strItem() As String, i As Integer, n As Long
strSrc = "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 --------------------编程问答--------------------
Option Explicit
Private 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
补充:VB , COM/DCOM/COM+