前者属于位运算,后者属于逻辑运算,而逻辑运算是用来条件判断的。另外,&&运算符在左侧表达式为 false 时,不会再执行运算,从而提高运算速度。
& 是位运算符,表示按位与运算;&&是逻辑运算符(短路运算符),表示逻辑与运算,&&符的运算效率更高;
按位与的运算规则:当两个整数进行按位与运算时,如果对应位都是1,则为1,否则,结果为0;如果参与运算的两个数精度不同,则结果转换为精度较高的数据类型。如下:
整数 3 的二进制表示为: 00000000 00000000 00000000 00000011
整数 6 的二进制表示为:00000000 00000000 00000000 00000110
按位与运算的结果为 2 :00000000 00000000 00000000 00000010
由于 3 和 6 的二进制数右边第二位都是 1 ,所以计算结果中右边的第二位也是1 ,而 3 和 6 的二进制数 其他对应为 不都为 1 ,所以其他对应位的结果都为 0 ;