已经知道批量加一个数值的方法了,进行布尔操作呢?
谢谢!

解决方案 »

  1.   

    比如对每个数组中的字节数值进行 and 18 操作
      

  2.   

    Public Function BatchAnd(ByRef Data() As Long, ByVal v As Long)
        Dim i As Integer
        For i = LBound(Data) To UBound(Data)
            Data(i) = Data(i) And v
        Next
    End FunctionPublic Function BatchOr(ByRef Data() As Long, ByVal v As Long)
        Dim i As Integer
        For i = LBound(Data) To UBound(Data)
            Data(i) = Data(i) Or v
        Next
    End FunctionPublic Function BatchXor(ByRef Data() As Long, ByVal v As Long)
        Dim i As Integer
        For i = LBound(Data) To UBound(Data)
            Data(i) = Data(i) Xor v
        Next
    End Function
      

  3.   

    to lexchou
    感谢你的代码,但是当数组比较大的时候,循环一边是非常非常慢的
    我希望能用api解决这样的问题。
      

  4.   

    并不是什么都能靠API解决的。而且大量次数重复调用API,效率甚至不如用VB内部实现如果这个代码是整个程序的效率瓶颈,那么你应该考虑将其全部用C或其他封装起来
      

  5.   

    api是底层,api不能解决的难道vb能解决?
    使用得当的话,100条api都比1条vb语句快
      

  6.   

    呵呵。vb不像c/c++/delphi等其他纯编译型语言,调用一个api只需要一个call到导入表然后jmp到dll中。而是经过一些比较复杂的变换,从一个类型安全有gc的环境跳到别的dll中的说是使用得当,可api并不是万能,你说批量对数据进行xor,or,and进行操作,windows就没有这样的api,因为这些用的很少而且一般来说不可能成为效率瓶颈