找回密码
 加入
搜索
查看: 5007|回复: 14

[AU3基础] BitOR函数有点不懂[已解决]

 火.. [复制链接]
发表于 2010-9-27 09:00:59 | 显示全部楼层 |阅读模式
本帖最后由 m765555 于 2011-3-6 12:00 编辑

关于bit开头的这些函数有点不懂,请哪位高手指点一下小弟???多谢了
特别是BitOR
发表于 2010-9-27 10:50:55 | 显示全部楼层
搜索下 逻辑 或与非
这方面知识挺多的,应用在数字电路上比较多

在计算机中逻辑或与非已二进制计算的,逻辑判断的结果只有二个值,称这二个值为“逻辑值”("True"或"False"),用数的符号表示就是“1”和“0”。其中“1”表示该逻辑运算的结果是“成立”的,如果一个逻辑运算式的结果为“0”,那么这个逻辑运算式表达的内容“不成立“。
实例中
$x = BitOR(3, 6) ;x == 7 因为 0011 OR 0110 = 0111

BITor 为或运算,或运算当两值均为0时,结果采薇0,其余结果均为1

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-9-27 11:03:55 | 显示全部楼层
本帖最后由 lixiaolong 于 2010-9-27 11:08 编辑

回复 1# m765555

BitOR函数

第一个例子:$x = BitOR(3, 6)
  0011 (3)
  0110 (6)
就像把上面的数值直接覆盖一样
=0111 =7,  2进值0111怎么转10进值?
从右边算 *1,*2,*4,*8

算法:
1*1=1 + 1*2=2 + 1*4=4 + 0*8=0 = 7

第二个例子:$x = BitOR(3, 15, 32)
        0011 (3)
        1111 (15)
00100000 (32)
= 00101111 = 47

00101111转10进值
1*1=1 + 1*2=2 + 1*4=4 + 1*8=8 + 0*16=0 + 1*32=32  = 47

评分

参与人数 2金钱 +60 收起 理由
zps26 + 30
afan + 30

查看全部评分

 楼主| 发表于 2010-9-27 11:47:22 | 显示全部楼层
回复 2# bob


    谢谢,有些了解了
 楼主| 发表于 2010-9-27 11:49:09 | 显示全部楼层
回复 3# lixiaolong


    非常感谢
发表于 2010-9-27 12:57:53 | 显示全部楼层
本帖最后由 netegg 于 2010-9-27 13:06 编辑

位或[bitor] - 只要两个同位置的数不全都为0,则为1, 即除了(0,0)均为1
位与[bitand] - 只要两个同位置的数不全都为1,则为0,即除了(1,1)均为0
没记错的话好象是这样的

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-9-27 15:26:47 | 显示全部楼层
回复  m765555

BitOR函数

第一个例子:$x = BitOR(3, 6)
  0011 (3)
  0110 (6)
就像把上面的 ...
lixiaolong 发表于 2010-9-27 11:03


从右边算 *1,*2,*4,*8
2^0,2^1,2^2

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2010-9-27 17:18:34 | 显示全部楼层
状态表...

a b f
0 0 0
0 1 1
1 0 1
1 1 1

有1出1

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2010-9-27 21:07:18 | 显示全部楼层
本帖最后由 zps26 于 2010-9-27 21:09 编辑

bitand 全1为1,其余为0;bitor全0为0,其余为1

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2010-9-27 21:32:05 | 显示全部楼层
学习了。。。。。。。。。
发表于 2010-9-29 12:51:12 | 显示全部楼层
好人真多。。。
发表于 2010-9-29 12:51:43 | 显示全部楼层
楼主改标题

评分

参与人数 1金钱 +5 收起 理由
afan + 5

查看全部评分

发表于 2010-9-29 16:30:35 | 显示全部楼层
建议搜索逻辑位操作的相关知识。
bitand   位与操作  规则是:有0出0,同1出1
bitor      位或操作  规则是:有1出1,同0出0
bitnot    位取反    规则是:有0出1,有1出0
bitshift  移位操作  规则是:假设操作系统字长是32位的,
                          左移时候超过31次,则造成溢出,数据的有效部分将丢失
                          右移的时候,数据从第0位开始自动删除,数据有效位丢失
bitrotate  循环移位  规则是:假设操作系统字长是32位的,那么将操作数扩展成32位的,
                            左移超过31位自动移位到第0位.
                                          右移小于0位自动移位到第31位。
bitxor    异或操作   规则:同出0,异出1.

例子:
以10和33为例
  将10变成二进制数为:0000 0000 0000 0000 0000 0000 0000 1010
   将33变成二进制数为:0000 0000 0000 0000 0000 0000 0010 0001
1.bitand(10,33)  
       按照规则结果为:0000 0000 0000 0000 0000 0000 0000 0000
2.bitor(10,33)
           按照规则结果为:0000 0000 0000 0000 0000 0000 0010 1011
3.bitnot(10)
       按照规则结果为:1111 1111 1111 1111 1111 1111 1111 0101
4.bitxor(10,33)
       按照规则结果为:0000 0000 0000 0000 0000 0000 0010 1011
5.bitshift 和bitrotate这两个你查看帮助里的例子。 你可以把计算机的内的二进制移位运算当作一个队列来看,循环移位就是一个环形的队列,队列首尾元素可以相互移动变化。而单纯的移位操作就是一个单向队列,只能向一个方向移动。如果某元素移位超过了这个队列的边界,则该元素自动被丢弃。

评分

参与人数 1金钱 +30 收起 理由
afan + 30

查看全部评分

发表于 2012-10-10 20:05:01 | 显示全部楼层
今天正好看到BitOR(),此贴非常有用。
发表于 2012-10-10 21:02:57 | 显示全部楼层
我在使用中觉得
bitand 、bitor 、bitnot 、bitxor经常用于标志位检测和设置,这样可以更方便
bitshift  通常用于替代乘除用算,效率比*/要高(rgb,irgb颜色的分离合成)
bitrotate  我不知道用处
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-13 04:59 , Processed in 0.081722 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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