0
点赞
收藏
分享

微信扫一扫

位运算的基本规则特点、A和B交换、二进制中第X的值、求绝对值

young_d807 2022-03-12 阅读 56

1.与:都为1结果为1 &

2.或:有一个为1结果为1 |

3.异或:两者不同时结果为1 ^

  • 任意整数与1与操作&,可以判断奇偶性,结果为0为偶数,结果为1为奇数,因为二进制偶数最后一位为零。

  • 异或满足交换律和结合律

  • 对于任何数x,都有x^x=0, x^0=x,异或是相同为零,同零异或等于自己

  • A^B^B=A^0=A,连续和同一个因子做异或等于本身

4.左移运算符(<<)

对于int型数模为32,1<<35与1<<3是相同的,long型数模为64

定义:将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。

设 a=1010 1110,a = a<< 2 将a的二进制位左移2位、右补0,即得a=1011 1000。

若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。

5.右移运算符(>>)

定义:将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

例如:a=a>>2 将a的二进制位右移2位,左补0 或者 左补1得看被移数是正还是负。

6.>>>不带符号右移,没有<<<符号

7.例题

位运算——A和B数值交换

public class A和B数值交换 {
    public static void main(String[] args) {
        int A = 10;
        int B = 20;

        A=A^B;
        B=A^B;
        A=A^B;
        System.out.println("A="+A);
        System.out.println("B="+B);
    }
}

 位运算——二进制中第X的值

public class 二进制中第X位的值 {
    public static void main(String[] args) {
        int a = 16;
        System.out.println(a+"的二进制第五位值是"+(((a&(1<<4))>>4)==0?"0" :"1"));
        System.out.println(a+"的二进制第五位值是"+((1&(a>>4))==0?"0":"1"));
    }
}

 位运算——求绝对值

public class 求绝对值 {
    public static void main(String[] args) {
        int C = -8;
        System.out.println(C+"的绝对值是"+((C^(C>>31))+(C>>>31)));

    }
}

尽量不要用中文名,驼峰原则规范命名!!

举报

相关推荐

0 条评论