&与&&的联系与区别(|与||同理)
**&和&&**是java中的逻辑运算发,都是双目运算符。如果两个操作数都是true,结果是true,否则是假;无论使用哪个运算符,对最终的运算结果是没有影响的。
虽然没有影响,但是存在比有意义:
- 对于&,无论任何情况,&两边的操作数都会参与计算。
对于&&,当&&左边的操作数为false时,&&右边的操作数将不参与计算,此时最终结果都为false。 - &还可以用作位运算符,但是&&没有这个功能,
- &位运算定义:参加运算的两个数据,按二进制位进行"与"运算。
- 运算规则:
0&0=0 , 0&1=0 ,1&0=0 , 1&1=1
- 总结:两位同时为1,结果才为1,否则结果为0。
- 例如:3&5 即 0000 0011& 0000 0101 = 0000 0001,因此 3&5 的值得1。
- 注意:负数按补码形式参加按位与运算。