0
点赞
收藏
分享

微信扫一扫

位运算(java)

位运算

位运算在我们一般编写程序时, 不是特别常见,但是巧妙的使用位运算可以大量减少运行开销,优化算法 , 如下 :

我们先看 << >> >>>这三个使用方法

// << >> 为有符号的移动,最高位1
int a = 1 << 4;   // 1 二进制 0001 -- 左移4位 1000
System.out.println("a:"+a);   //十进制为16

int b = -16 >> 4;   // a 二进制 1000 -- 右移4为 0001
System.out.println("b:"+b);   //十进制为1

//  >>> 为无符号右移,空缺位只用0 补
int c = 4 >>> 1;   // 4   0000 0100
int d = -4 >>> 1;  // -4  1111 1100
System.out.println("c:"+c);
System.out.println("d:"+d);

结果 :

d 的最高位因为是1 ,移位后补0 ,所以超出了 int 的最大值

接着是这四个 :  &  |  ^  ~ , 例 :如下

int a = 4,b = 6;  // a: 0000 0100  b: 0000 0110
//4&6 -- 0000 0100 -- 十进制:4
System.out.println(a & b);
//4|6 -- 0000 0110 -- 十进制:6
System.out.println(a | b);
//4^6 -- 0000 0010 -- 十进制:2
System.out.println(a ^ b);
//~4  -- 1111 1011 -- 十进制:-5
//~6  -- 1111 1001 -- 十进制:-7
System.out.println(~a);
System.out.println(~b);

结果 : 

 

举报

相关推荐

Java 位运算

java 位运算

Java中的位运算

java中的位运算

0 条评论