JAVA中有7个位运算符分别是&、|、^、~、>>、<<、>>>。这篇文章中给大家讲解的是按位与&运算。
运算规则:
按位与& |
两位全为1,结果为1,否则为0(参与运算的数以补码的形式出现) |
运算示例:
6&8,第一步先得到6的补码。因为6的原码为0000 0000 0000 0110,6是一个正数,所以6的补码与源码一致即为0000 0000 0000 0110,然后得到8的补码,8的源码为0000 0000 0000 1000,8是正数补码与源码一致即为0000 0000 0000 1000,最后对0000 0000 0000 0110和0000 0000 0000 1000进行与运算,从最后一位开始计算,0000 0000 0000 1000最后一位是0,而0000 0000 0000 0110最后一位也是0,则计算0和0,根据运算规则,与运算只有在1和1的情况下结果才为1,因此得出0。同理1和0得0。所以6&8结果为0000 0000 0000 0000表示成十进制即为0。
2&-2,第一步分别得到2和-2的补码,2是正数因此补码与源码一致即为0000 0000 0000 0010,-2是负数所以符号位为1因此-2源码为1000 0000 0000 0010,负数补码在其原码的基础上符号位不变(最高位就是符号位),其余个位取反,最后加1。符号位不变其余个位取反结果是1111 1111 1111 1101,加1结果是1111 1111 1111 1110,则0000 0000 0000 0010和1111 1111 1111 1110进行与运算根据运算规则得出最终结果为0000 0000 0000 0010表示成十进制即为2。
好啦按位与运算就介绍到这里,它并不简单,大家要多多练习呀。