“与” 和 “或”
与是所有条件都要成立( all true),或是条件有一个成立即可 (one true).
“ &”和“&&” 是“与”的意思:
两者都可以作为 “与” 运算,但是二者存在差别.
“&”运算时,会把所有的条件都进行判断.
“&&”运算时,只要前面的条件不成立就不再进行判断.
“ |”和“||” 是“或”的意思:
和“&”类似,二者都可以进行 “或” 运算.
“|” 运算时,会把所有的条件都进行判断.
“||” 运算时,只要前面的条件成立就不再进行判断.(这里是成立,不再举例)
“&” 和 “|” 的独有的位运算功能:
“&” 和 “|” 不仅有 “与” 和 “或 ”的条件判断功能还可以作为基本的位运算符.
“&&”和“||”的优点:
“&&” 和 “||” 运算符还具有短路功能,如果&&左边的表达式值为false,右边的表达式会被短路掉,不会参与运算。很多时候我们可能都需要用&&而不是&,||类似. “&&” 和 “||”的使用可以优化程序代码的性能。
拓展位运算
简单来说就是基于整数的二进制表示进行的运算。它直接处理每一个比特位,是非常底层的运算,好处是速度极快,缺点是不太直观。
按位与(AND) &
&运算符(位与)用于对两个二进制操作数逐位进行比较。如果对应的位都为 1,那么结果就是 1, 如果任意一个位是 0 则结果就是 0。
按位或(OR) |
|运算符(位或)用于对两个二进制操作数逐位进行比较。只要两个对应位中有一个 1 时就为 1,否则为 0。