首页 > 编程 > Java > 正文

java 移位运算

2019-11-06 09:50:42
字体:
来源:转载
供稿:网友

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

一.左移

它的通用格式如下所示: value << num num 指定要移位值value 移动的位数。

左移的规则只记住一点:丢弃最高位(符号位同样丢弃),0补最低位

如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。

例如:3 <<2(3为int型) 1)把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011, 2)把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位 3)在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100, 转换为十进制是12。

注:n位二进制,最高位为符号位,因此表示的数值范围-2^(n-1)~2^(n-1) -1,所以模为2^(n-1)。

二.带符号位右移

它的通用格式如下所示: value >> num num 指定要移位值value 移动的位数。 带符号位右移的规则只记住一点:符号位不变,左边补上符号位

三.无符号右移

它的通用格式如下所示: value >>> num num 指定要移位值value 移动的位数。 无符号右移的规则只记住一点:忽略了符号位扩展,0补最高


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表