找回密码
 加入
搜索
楼主: yarsye

[AU3基础] 白痴问个比较白痴的问题:在实际中我到底怎么样才会用到BitOR,BitAND,BitXOR?

 火... [复制链接]
发表于 2010-6-6 22:46:12 | 显示全部楼层
系统消息会用到
发表于 2010-6-7 09:03:32 | 显示全部楼层
可以用来做运算之用
发表于 2010-6-7 10:07:46 | 显示全部楼层
很少用,頂頂
发表于 2010-6-8 10:57:35 | 显示全部楼层
数据转换时会用到
发表于 2010-6-8 12:09:21 | 显示全部楼层
 楼主| 发表于 2010-6-9 16:42:09 | 显示全部楼层
foboy 发表于 2010-6-8 12:09


首先非常感谢foboy
感谢你的解释
其实我还有点不清楚 当 BitAND($win_state,8)==8 按位于是8说明了什么?窗口是最小化状态?
BitAND($win_state,8)其中与8相与是确保窗口至少是激活状态 对吗
那为什么要等于8呢?
本人比较愚笨,望解释更详细点。谢谢。
发表于 2010-6-9 17:23:54 | 显示全部楼层
回复 21# yarsye

BitAND是按位与运算,是二进制的运算
BitAND($win_state,8)==8
8的二进制是1000,上面的代码是表示,$win_state的二进制的第4位必须是1,
比如:9 = 1001,10 = 1010等,如果$win_state 是7,那1000与0111 ,结果是0
BitAND($win_state,8)==8这条代码简单的来说是要求$win_state要比8大。
 楼主| 发表于 2010-6-9 17:33:23 | 显示全部楼层
回复  yarsye

BitAND是按位与运算,是二进制的运算
BitAND($win_state,8)==8
8的二进制是1000,上面的 ...
C.L 发表于 2010-6-9 17:23


感谢你的回复
你上面一条 信息说:
16 = 窗口为最小化状态
32 = 窗口为最大化状态
你想要判断这个窗口是不是最小化,就用:
$win_state=WinGetState("***","****")
If BitAND($win_state,8)==8 Then ***********

我现在就有一个地方不明白了 那就是”BitAND($win_state,8)==8这条代码简单的来说是要求$win_state要比8大。“ 比8大的有 16和32 , 这样的话==8就可以判断是不是最小化?
再次感谢你的阅读
发表于 2010-6-9 17:44:25 | 显示全部楼层
回复 23# yarsye

我上面的回复刚才断线了,没写完,刚才的大于8 ,是限于<16的
下面的你可以用二进制算一下:
8 and 8 = 1000 and 1000 = 1000
16 and 8 = 10000 and 1000  = 0
32 and 8 = 100000 and 1000 = 0
<8 (7) and 8 = 0111 and 1000 = 0
所以
BitAND($win_state,8)==8 是用来判断8的,也就是窗口的激活状态,其他的数:1,2,4,16,32,和8进行按位与运算,结果都是0,只有$win_state= 8 时 这个等式才为真。

评分

参与人数 1威望 +2 收起 理由
afan + 2

查看全部评分

 楼主| 发表于 2010-6-10 09:17:21 | 显示全部楼层
回复  yarsye

我上面的回复刚才断线了,没写完,刚才的大于8 ,是限于
C.L 发表于 2010-6-9 17:44



    太详细了  总算明白了 非常感谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-13 01:45 , Processed in 0.072636 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表