位运算符

位运算符

package operator;
public class demo04 {
    public static void main(String[] args) {
        /* 位运算符与,或,非 & | ~
        A = 0011 1100
        B = 0000 1101
        A & B = 0000 1100 //都为1则为1,否则为0
        A | B = 0011 1101 //有一个为1即为1
        A ^ B = 0011 0001 //异或运算,相同为0,不同为1
        ~B = 1111 0010 //取反,0变1,1变0

        2*8怎么计算最快,可以拆分为2*2*2*2,
        效率极高!!
        << 左移   相当于*2的n次方,如3<<2,3左移2位,相当于3*2的2次方=12
        >> 右移   相当于/2的n次方,如11>>2,11右移2位,相当于11/2的2次方,取整弃余,等于2
        2左移3位解析:
        0000 0000 //0
        0000 0001 //1
        0000 0010 //2,左移3位为0001 0000,即16
        0000 0011 //3
        0000 0100 //4
        0000 0101 //5
        0000 0110 //6
        0000 0111 //7
        0000 1000 //8
        0000 1001 //9
        0000 1010 //10
        0000 1011 //11
        0000 1100 //12
        0000 1101 //13
        0000 1110 //14
        0000 1111 //15
        0001 0000 //16
         */
        System.out.println(2<<3); //2左移3位,相当于2*2的3次方,输出16
    }
}
posted @ 2023-02-03 15:44  chengh0618  阅读(17)  评论(0编辑  收藏  举报