java 移位运算符详解

[size=large][b][color=red]java移位运算符不外乎就这三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。 [/color][/b][/size]

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

[color=red]左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方 [/color]

[size=medium][color=red][b]2、 右移运算符[/b][/color][/size]
右移运算符<<使指定值的所有位都右移规定的次数。
1)它的通用格式如下所示:
value >> num
num 指定要移位值value 移动的位数。
右移的规则只记住一点:[color=red]符号位不变,左边补上符号位 [/color]负数补1 正数补0

[color=red]右移一位相当于除2,右移n位相当于除以2的n次方。[/color]

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

[size=medium][color=red]4.注意移位运算符的优先级在加减法只下,在比较运算符之上。[/color][/size]


int a = 5;
int b = 10;
int c = a >> 2 + b >> 2;
System.out.println(c);//0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值