专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Java位移运算符的使用

Java位移运算符的使用

更新时间:2022-03-21 12:15:43 来源:赢咖4 浏览1023次

学习Java是一个积累的问题。也许你可以通过自学掌握一些肤浅的技术,通过系统的学习Java基础知识,但是你还是需要自己的技术和工作经验的积累才能精通。

Java位移运算符的使用

1.“有符号”左移运算符(< <)可以将运算符左侧的操作数向左移动运算符右侧指定的位数(低位填0)。

左移相当于乘以2,例如

3 < < 2 // 12 将数字 3 左移 2 位2 2 = 3 *(2 的二次方)

分析:先将3转换成二进制数0000 0000 0011,然后将该数的高位(左)的两个零移出,其他数左移2位,最后填入低阶(右)。那么最终的结果就是0000 0000 0000 1100,转换成十进制就是12。数学意义:

在数不溢出的前提下,对于正数和负数,左移一位相当于乘以 2 的 1 次方,左移 n 位相当于乘以 2 的 n 次方。

2.有符号右移运算符(> >)将运算符左侧的操作数向右移动运算符右侧指定的位数。“有符号”右移运算符使用“符号扩展”:如果值为正,则在高位插入0;如果值为负,则在高位插入 1。

>> 运算规则:按二进位博弈形式将所有数字右移相应的位数,移出(丢弃)低位,用高位中的空位填充符号位。如果移位后得到的数为正数,则填0,负数填1。

例如,11 > > 2 将数字 11 向右移动 2 位

解析:11的二进制形式为:0000 0000 0000 0000 1011,然后将www.sangpi.com的后两位低位移出。因为数字是正数,所以高位填零。最终结果是0000 0000 0000 0000 0000 0010。转换成十进制是3。数学意义:右移一位相当于除2,右移n位相当于除2的n次方。

3.Java还增加了一个“无符号”右移运算符(> > >),它使用“零扩展”:无论正负,高位插入0

4.右移一位相当于除以2,左移一位(不溢出)相当于乘以2;移位运算比乘法和除法更快。

5.位运算符的优先级

~是最高优先级,依次是<、> >和> > >,其次是&,然后是^,最低优先级是|。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>