位运算实际应用,判断奇偶数、交换变量值、2的倍数乘除法和阶乘、绝对值、相反数、RGB色与16进制的相互转换

来源:互联网 发布:mac添加不了搜狗输入法 编辑:程序博客网 时间:2024/04/30 02:56

1、按位与运算判断奇偶数

int a = -100001;if((a&1)==0)System.out.println("偶数");if((a&1)==1)System.out.println("奇数");

2、交换变量值

int a = 3;int b = 4;a = a^b;//相当于a+b=cb = b^a;//相当于c-b=aa = a^b;//相当于c-a=bSystem.out.println(a + "," + b);

3、快速计算2的倍数乘、除法和阶乘

25*4=100

int a = 25;System.out.println(a<<2);

25/4=6

int a = 25;System.out.println(a>>2);

2的32次幂

int a = 1;System.out.println(a<<32);

4、求绝对值

标准写法,不用改

int x = -133;int y = x>>31;//x大于等于0时y为0,x小于0时y为-1System.out.println((x^y)-y);System.out.println((x+y)^y);//等同于上一句

5、相反数

int x = -133;x = ~x+1;x == 133;

6、RGB色与16进制的相互转换

int r = 100, g = 56, b = 200;int color = (r<<16)|(g<<8)|b;System.out.println(Integer.toHexString(color));r=(color>>16)&0xff;g=(color>>8)&0xff;b=color&0xff;System.out.println(r);System.out.println(g);System.out.println(b);






原创粉丝点击