westmood 发表于 2016-9-28 15:40:04

Bitand 的作用是什么?

本帖最后由 westmood 于 2016-9-28 15:54 编辑

#include <MsgBoxConstants.au3>
#include <Array.au3>
Example()

Func Example()
    ; 检索窗口句柄的列表.
    Local $aList = WinList()

    ; 遍历数组, 循环显示所有可见窗口的标题和句柄.
    For $i = 1 To $aList
      If $aList[$i] <> "" And BitAND(WinGetState($aList[$i]), 2) Then
                        Msgbox (0,"",WinGetState($aList[$i]))
                        Msgbox (0,"",BitAND(WinGetState($aList[$i]), 2))
                        MsgBox($MB_SYSTEMMODAL, "", "标题: " & $aList[$i] & @CRLF & "句柄: " & $aList[$i])
      EndIf
    Next

        _ArrayDisplay($aList, UBound($aList))

EndFunc   ;==>Example

请问大侠这个例子里为什么要用Bitand, 作用是什么?为什么 Bitand 的 参考值是2?

heroxianf 发表于 2016-9-28 16:41:10

回复 1# westmood


    帮助里搜索Bitand 有详细说明的

haijie1223 发表于 2016-9-28 18:56:30

在这个例子中的作用是检测窗口是否为可见状态。

cashiba 发表于 2016-9-28 20:01:26

bitand()函数
返回两个数值型数值在按位进行 AND 运算后的结果。

语法
BITAND(N1,N2)
指定按位进行AND运算的两个数值。如果 N1 和 N2 为非整数型,那么它们在按位进行 AND 运算之前转换为整数。

返回值类型
数值型

说明
BITAND( ) 将 N1 的每一位同 N2 的相应位进行比较。如果 N1 和 N2 的位都是 1,相应的结果位就是 1;否则相应的结果位是 0。
下表列出对 N1 和 N2 按位进行 AND 运算的结果:
N1N2结果
0    0    0
0    1    0
1    1    1
1    0    0

函数示例
x = 5 && 二进制为0101
y = 6 && 二进制为0110
?bitand(x,y) && 返回值4,二进制为0100BITAND=按bit进行and运算

cashiba 发表于 2016-9-28 20:04:07

这个bitand函数不是AU3特有的。VB,oracle等也有

heroxianf 发表于 2016-9-28 20:47:41

回复 3# haijie1223

后边为什么是2我查了资料,也没明白!{:face (197):}

haijie1223 发表于 2016-9-28 21:42:30

回复 6# heroxianf


    因为你查的地方不对。去查WinGetState看看

heroxianf 发表于 2016-9-28 23:42:50

回复 7# haijie1223

看到了 果然是可见窗口参数是2

haijie1223 发表于 2016-9-29 07:01:56

回复 8# heroxianf


    少回复些没有营养的内容,多看帮助多搜索。

heroxianf 发表于 2016-9-29 09:12:24

回复 9# haijie1223


    好勒!!还有十几分,可以搜索内容了!

chinacc 发表于 2016-9-30 10:08:53

按位与操作啊,二进制的

cihron 发表于 2016-10-2 03:46:35

果断是::按位与
页: [1]
查看完整版本: Bitand 的作用是什么?