当前位置:编程学习 > VB >>

关于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代码写出该计算公式和结果? --------------------编程问答-------------------- 转换成整数,再做加减。 --------------------编程问答--------------------
引用 1 楼  的回复:
转换成整数,再做加减。



具体VB代码是怎么写的? --------------------编程问答-------------------- 没人会吗 --------------------编程问答-------------------- 和普通的加减没有什么大的区别,只要考虑进位借位要如何处理即可,因为字节里保存的就是16进制 --------------------编程问答--------------------
引用 楼主 ControlNo1 的回复:
在VB中如何表示十六进制单字节的加减法?

如:0-(00+03+08+39+54+45+58+54+30+31+0d+09+03),用VB代码如何写?

注意:由于以上括号中的数据是随程序运行而变化的,所以不能写成:&H0-(&H00+&H03+&H08+&H39+&H54+&H45+&H58+&a……


但是你在处理的时候是可以转化成&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+
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,