1.8 位运算符

1.8 位运算符

/* 例1.87-1: 位运算符 */
public class Operator05 {
    public static void main(String[] args) {
        /* 位的与或非运算
        A = 0010 1010
        B = 1010 1100
        ---------------
        A & B = 0010 1000     // 位与运算, 同为1则为1, 否则则为0
        A | B = 1010 1110     // 位(bit)或运算, 有1个是1则为1, 全为0才为0

        A^B = 1100 0110     // 位异或运算, 相同为0, 不同为1

        ~A = 1101 0101      // 位非运算
        ~B = 0101 0011      // 位非运算
         */

        /* 位的左移与右移
        a << n : 左移n位, 等同于 a*(2^n)
        a >> n : 右移n位, 等同于 a/(2^n)

        位运算, 效率极高
         */
        // 题01: 如何最快地计算2^4    --> 使用位运算
        int a = 2;
        System.out.println(a);
        System.out.println(a<<3);
        System.out.println(Math.pow(a, 4));
        // a << 1 = Math.pow(a, 2);
        // a << 3 = Math.pow(a, 4);
    }
}

1.8.1 属性

位逻辑运算符 简要
~ 位非操作
& 位与操作
` `
位移动运算符 简要
a << n 向左移动n位
a >> n 向右移动n位
posted @ 2022-11-06 12:05  叁仟月  阅读(24)  评论(0编辑  收藏  举报