A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jing迪 高级黑马   /  2013-11-4 07:13  /  845 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

关于位运算符有个问题
&作为位运算符 可以取一个二进制位的有效位这个懂了
但是|作为位运算符   可以将有效位保留 这个是啥意思????
怎么叫有效位保留?
比如10110110101&111我知道可以看作取这个二进制位的后三位

但是|这个符号视频中说的可以将有效位保留还是不懂  有什么特别的用途么??看了几遍了 还是没看懂 有人能告诉下么

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

4 个回复

倒序浏览
保留有效位就是保留值为1的二进制位。因为1 | x(0,1),结果都为1.这样就可将有效位保留。
如你说的例子:10110110101 | 101010  结果为111111,运算之后,对应二进制位的值,1的没有变,保留了。0的二进制位,是可以变的。所以| 没有&的取出功能。
希望可以帮到你
回复 使用道具 举报
| 是位运算的或,|| 是逻辑运算的或
a | b , 无论如何,都会计算 a 和 b
a || b, 只有当 a 为假的时候才会计算 b

  |       位或 ,只要两边表达式结果有一个为true,结果就为true;只有当两边同为flase,结果才为flase.

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 魏-玉-彪 于 2013-11-4 08:49 编辑

10110110101&111   =   00000000101             //取后面三位为有效位
10110110101&000   =   00000000000            //不取有效位

10110110101&11111111111  =  10110110101// 取第一个参数的全部有效位

10110110101|111   =   10110110111     //保留了两个数的所有有效位
10110110101|000   =   10110110101     //就算后面的数是0也保留了10110110101的有效位
10110110101|11111111111  =   11111111111 //保留了第两个参数的全部有效位

              上述说法容易造成逻辑上的混乱,因为取和保留都是相对概念.
事实上:  &的意思就是两边同时满足真条件才为真(1)否则为假(0)
             |的意思是只要一边满足真的条件就为真(1)全部为假(0)才为假(0)
             在这里,1代表真,0代表假.


评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 很详细的解答

查看全部评分

回复 使用道具 举报
问题相对简单,相信您已经得到答案了。
帖子已重新分类,如果仍有疑惑,可以重新提问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马