请教一个位运算问题
本帖最后由 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之后恍然大悟 我是来拿钱的
两个数先做一次bitor
再做一次bitand
再将前面得出的两个做一次bitxor 本帖最后由 tryhi 于 2011-7-1 13:09 编辑
发现P版发的位运算题目,先认真学习下
http://www.autoitx.com/forum.php?mod=viewthread&tid=18663
----------------------------------------------------------------
可惜不能回复,N多看不到。。。。
----------------------------------------------------------------
有P版的回复,足够了 位运算是个好东西,这里有很多位运算技巧:Bit Twiddling Hacks看到这些位运算的算法,真是让人拍案叫绝。 位运算是个好东西,这里有很多位运算技巧:看到这些位运算的算法,真是让人拍案叫绝。
pusofalse 发表于 2011-7-1 14:04 http://www.autoitx.com/images/common/back.gif
多谢P版指点。
全英文。。。。。阅读起来有压力。。。。 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) 回复 6# 3mile
这个……for32次。。。。。 回复 7# tryhi
你不是要取32位的二进制值吗? 回复tryhi
你不是要取32位的二进制值吗?
3mile 发表于 2011-7-1 15:14 http://www.autoitx.com/images/common/back.gif
哦,明白了{:face (396):} 代码收下了... 留个脚印方便查看英文不好看网站累
页:
[1]