tryhi 发表于 2011-7-1 12:43:36

请教一个位运算问题

本帖最后由 tryhi 于 2011-7-1 13:53 编辑

想实现这样的一个位运算,就是有条件的取反,BitNOT是32位全部取反,像这样
计算前:00000000111111000000000111111111
计算后:11111111000000111111111000000000

我想要实现的是根据一个数来取反,像这样
计算前:00000000111111000000000111111111
         11111111111110000000001111111111
计算后:11111111000001000000001000000000

不知道大家看明白没有,AU3提供的六个位运算,怎么组合好像都没有办法实现这样计算,不知道怎么实现
1、BitAnd
2、BitOR
3、BitXOR
4、BitNot
5、BitShift
6、BitRotate




续:---------------------------------------------------------
我发现我蛋疼了,我所说的有条件取反不就是BitXOR按位"异或"运算嘛,晕死~~~~~~~~~~~
看了P版第7之后恍然大悟

思夜月心 发表于 2011-7-1 12:43:37

我是来拿钱的
两个数先做一次bitor
再做一次bitand
再将前面得出的两个做一次bitxor

tryhi 发表于 2011-7-1 12:58:20

本帖最后由 tryhi 于 2011-7-1 13:09 编辑

发现P版发的位运算题目,先认真学习下
http://www.autoitx.com/forum.php?mod=viewthread&tid=18663



----------------------------------------------------------------
可惜不能回复,N多看不到。。。。


----------------------------------------------------------------
有P版的回复,足够了

pusofalse 发表于 2011-7-1 14:04:30

位运算是个好东西,这里有很多位运算技巧:Bit Twiddling Hacks看到这些位运算的算法,真是让人拍案叫绝。

tryhi 发表于 2011-7-1 14:08:12

位运算是个好东西,这里有很多位运算技巧:看到这些位运算的算法,真是让人拍案叫绝。
pusofalse 发表于 2011-7-1 14:04 http://www.autoitx.com/images/common/back.gif


    多谢P版指点。

全英文。。。。。阅读起来有压力。。。。

3mile 发表于 2011-7-1 14:19:45

Local $return
$number=BitXOR(0xFC01FF,0XFFF803FF)
for $i=31 to 0 step -1
        $return&=StringFormat("%d",BitAND(BitShift($number,$i),1))
Next
msgbox(0,0,$return)

tryhi 发表于 2011-7-1 15:09:37

回复 6# 3mile


    这个……for32次。。。。。

3mile 发表于 2011-7-1 15:14:53

回复 7# tryhi
你不是要取32位的二进制值吗?

tryhi 发表于 2011-7-1 15:44:48

回复tryhi
你不是要取32位的二进制值吗?
3mile 发表于 2011-7-1 15:14 http://www.autoitx.com/images/common/back.gif

哦,明白了{:face (396):}

lxz 发表于 2011-7-1 20:31:30

代码收下了...

shenrenba 发表于 2011-7-2 08:20:55

留个脚印方便查看英文不好看网站累
页: [1]
查看完整版本: 请教一个位运算问题