java移位运算符详解

java移位运算符不外乎就这三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。

1、 左移运算符
左移运算符<<使指定值的所有位都左移规定的次数。
1)它的通用格式如下所示:
value << num
num 指定要移位值value 移动的位数。
左移的规则只记住一点: 丢弃最高位,0补最低位

左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方
2、 右移运算符
右移运算符<<使指定值的所有位都右移规定的次数。
1)它的通用格式如下所示:
value >> num
num 指定要移位值value 移动的位数。
右移的规则只记住一点: 符号位不变,左边补上符号位 负数补1 正数补0

右移一位相当于除2,右移n位相当于除以2的n次方。

3、无符号右移
无符号右移运算符>>>
它的通用格式如下所示:
value >>> num
num 指定要移位值value 移动的位数。
无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位
无符号右移运算符>>> 只是对32位和64位的值有意义

4.注意移位运算符的优先级在加减法只下,在比较运算符之上。

   int a = 5;  
   int b = 10;  
   int c = a >> 2 + b >> 2;
   System.out.println(c);//0

你可能感兴趣的:(java)