位运算符

来源:互联网 发布:帝国cms视频管理系统 编辑:程序博客网 时间:2024/06/08 02:49
/*
 * 位运算符:
 * 位与:&
 * 位或:|
 * 位异或:^(重点)
 * ~:反码
 * */
public class OperatorDemo {
public static void main(String[] args) {

System.out.println(3 & 4);
System.out.println(3 | 4);
System.out.println(3 ^ 4);
System.out.println(~3);
}  
}
/*
 * 位运算符连接的是两个具体的数据
 * 要计算机出通过位运算符得到的值;
 * 3和4int类型数据,分别要计算出对应的2进制数据
 * 3
 * 00000000 0000000000000000 00000011
 * 4
 * 0000000 0000000000000000 00000100
 * 
 * 位与:&:
 * 有0则0
 * 00000000 00000000 0000000000000011
 * 位& 0000000000000000 0000000000000100
 * ----------------------------------------------------------------
 * 00000000 00000000 0000000000000000
 * 结果:0
 * 
 * 位或:|
 * 特点:有1则1
 * 00000000 00000000 0000000000000011
 * 位| 0000000000000000 0000000000000100
 * -------------------------------------------------------------------
 * 00000000 00000000 0000000000000111
 * 结果:7
 * 
 * 位异或:^
 * 相同则为0,不同则为1
 * 00000000 00000000 0000000000000011
 * 位^ 0000000000000000 0000000000000100
 * ------------------------------------------------
 * 00000000 00000000 0000000000000111
 * 
 * 结果:7
 * 
 * ~:按位取反:0变1,1变0
 * (~3)
 * 
 * 00000000 00000000 0000000000000011 
 * ~ ------------------------------------------------
 * 11111111 11111111 1111111111111100((补码)
 * 
 * 最高符号位: 数值位:
 * 1 111111111111111 1111111111111100
 *  -1
 * 反码:
 * 1 111111111111111 1111111111111011
 * 原码:最高符号位不变,数值位:按位取反:0变1,1变0 
 * 1 000000000000000 0000000000000100
 * 
 * 结果:
 * - 4
 * 
 *
 *
 * 
 * */