第①和第②有什么区别吗,还有是button and 2,而不
vb吧
全部回复
仅看楼主
level 7
◆大风车 楼主
第①和第②有什么区别吗,还有是button and 2,而不是像下面的3一样是(button and 2)=2
2018年03月05日 10点03分 1
level 11
这个回答都能“内包含违规的联系方式或者url”?我真不知道百度的技术人员是不是尽是混饭吃的?
2018年03月05日 11点03分 3
level 8
1 是只能按着右键
2 是只要按了右键就可以……
2018年03月05日 11点03分 4
level 15
4楼回答了第一个问题,即 Button = 2 和 Button And 2 这两个条件的区别
至于第二个问题,那是因为2的二进制数只有一位1,一个数与2进行And运算的结果只可能是0或2,而 Button And 2 这样的条件等价于 (Button And 2) <> 0 ,对于 Button And 2 这样只有两种取值、类似于Boolean类型值的表达式,不等于0自然就只能等于2,于是就用了这种省略写法;而3有两个二进制位是1,Button And 3 的结果可以是0~3这四个数之一,7有三个二进制位是1,Button And 7 的结果可以是0~7这八个数之一,因此 Button And 3 就不等价于 (Button And 3) = 3 了,Button And 7 同理,这种情况如果要指明等于其中某个数值,就必须把这个数写出来了
不过……关于 Button And 7 这个写法,貌似Button本身就只有0~7这些取值,没必要去跟7进行And运算
2018年03月05日 12点03分 5
level 8
1.首先楼主需要知道十进制与二进制的转换,鼠标有三个键(左右中)且每个键都有两种状态(按下与未按下),所以用二进制的1与0分别表示按下与未按下的状态。如001表示左键被按下,又如011表示左右键同时被按下。他们分处于三个不同的数位所以不会混淆。
2.其次楼主还需要知道And连接两个Integer数的时候的计算方式。实际上每个Integer的数都要占用2个字节也就是16个位,但是为了表示方便这里只用末尾三位进行表示和说明前面省略部分都是“0”。如001(十进制对应1)与011(十进制对应3):计算时三个数位分别计算,从高位到低位分别可以理解为0 And 0 = 0,0 And 1 = 0,1 And 1 = 1。把这里的三个等式的0与1换成Boolean的False与True也可以得到相同的结果。
3.下面考虑三种情况
a)If Button = X Then(这里的X可以取1~7)
e.g.当X为2时,表示当只按下鼠标右键时,判断式为True,执行后面的语句块。
e.g.当X为5(二进制对应101)时,表示当同时只按下鼠标左中两个键的时候,判断式为True,执行后面的语句块。
不难看出此时的Button要与X完全对应。
b)If Button And X Then(这里的X可以取1~7)
①首先考虑三个特殊情况,即X为1,2或者4的时候。
判断式若要为True,则变成了Button 与X的And运算结果不能为000(对应十进制0,0等于False)
根据运算法则只要存在一个1(True)And 1(True)的运算位即可,也就是说,按下的键至少要有一个是X所指示的。
e.g.当X为3(二进制对应011)时,判断式的含义是Button只要取001(十进制对应1,左键)或010(十进制对应2,右键)或011(十进制对应3,左右键同时按)或111(十进制对应7,左中右键同时按)其中的一个都可以让判断式为True
c)If ( Button And X ) = X Then(这里的X可以取1~7)
①首先考虑三个特殊情况,即X为1,2或者4的时候。
判断式若要为Ture,则变为了Button与001,与010,与100的And运算结果要仍然等于001,010,100。
根据运算法则0与无论是0(False)还是1(True)进行And的时候结果都是0(False),所以是否按下其他键并不会影响Button And X的值,为了让判断式为True,我们只需要让1 And 1出现即可。
所以也就是:至少要按下X所指示的那个键即可
②考虑X为011,101或110三种情况,即分别为十进制的3,5,6。
按照①中的分析,同理可以得出:至少要按下X所指示的那两个键即可
③当X为111(十进制对应7)时
同理:需要同时按下左中右三个键
综上对于这种情况,至少满足了X对应的键按下即可。
上面三种情况的用Venn图类比来看就是
d)If ( Button And X ) = Y(X不等于Y且都在1~7之间取值)
可以自己分析下。
2018年03月05日 12点03分 6
你打字真快啊
2018年03月05日 12点03分
[勉强]用电脑打的
2018年03月05日 12点03分
@危险之音 我要打这么多字用电脑也得一个小时呢
2018年03月05日 12点03分
非常详细,只是有时候既然是 vb6那就直接用值也是不错的,改源码。
2018年03月05日 20点03分
1