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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编程者经常混淆两组运算符:(&,|)和(&,|)。第一组是逻辑运算符,它的操作数是布尔型,而第二 组则是位运算符,其操作数是位序列。在布尔型操作数中,只有两个数值,0或1。在逻辑运算中,所有的非0数值都看做1处理。而位序列则可以是 有无符号的字符型,整型,长短整型等。在位运算中,是相应的位之间进行逻辑运算。因此,从逻辑上讲,位运算过程包含多个逻辑运算过程。通常,位运算操作数 选择无符号型数据。

位运算“与”的结果 是整型数
逻辑运算“与”的结果 是 布尔型 - 真与假。

运算“与”常用于 取一个数的某一位 或者  取一个数的某几位,(按二进制数来考虑,取位运算)
逻辑运算“与”常用于 条件判断,用于条件语句,while循环语句等等.



首先一点位运算的运算单位是位,逻辑运算的单位是整个数值。
位运算是根据操作数的每一位是否为0决定结果的对应位是否为0

0011 | 1010 -> 1011

逻辑运算是根据操作数整体数值是否为0决定结果是1还是0

1111 | 0000 -> 1, 0000 | 0000 -> 0, 0000 | 0010 -> 1

另外逻辑运算还一个重要特性就是,会截断求值过程:

f() | g()

这里如果f()返回值不等于0,整个表达式结果就必然是1,于是就不会执行g();


3 个回复

正序浏览
确实可以用来求奇偶数,不过字太多,差评!!!
回复 使用道具 举报
格城先生 发表于 2016-4-15 22:45
逻辑运算符一般用于连接boolean类型的表达式或者值;位运算符两边操作数类型是整数型数据类型的变量或值 ...

看你所用的位置,如果用在条件表达式内就是逻辑运算,如果用在非条件表达式内就是位运算符
回复 使用道具 举报
逻辑运算符一般用于连接boolean类型的表达式或者值;位运算符两边操作数类型是整数型数据类型的变量或值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马