黑马程序员技术交流社区
标题:
&、| 相同符号,位操作符和逻辑运算符的区别?
[打印本页]
作者:
格城先生
时间:
2016-4-15 22:44
标题:
&、| 相同符号,位操作符和逻辑运算符的区别?
编程者经常混淆两组运算符:(&,|)和(&,|)。第一组是逻辑运算符,它的操作数是布尔型,而第二 组则是位运算符,其操作数是位序列。在布尔型操作数中,只有两个数值,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();
作者:
格城先生
时间:
2016-4-15 22:45
逻辑运算符一般用于连接boolean类型的表达式或者值;位运算符两边操作数类型是整数型数据类型的变量或值
作者:
夜语
时间:
2016-4-15 22:52
格城先生 发表于 2016-4-15 22:45
逻辑运算符一般用于连接boolean类型的表达式或者值;位运算符两边操作数类型是整数型数据类型的变量或值 ...
看你所用的位置,如果用在条件表达式内就是逻辑运算,如果用在非条件表达式内就是位运算符
作者:
zwb690949450
时间:
2016-4-15 22:58
确实可以用来求奇偶数,不过字太多,差评!!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2