首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种。

<< 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0填充,多余位舍弃。(等同于乘2的n次方)

>> 右移运算符,二进制数据向右移动*位,就在其二进制数据后抹掉几位?(这里还不错定,但个人理解是这样的)(等同于除2的n次方)

>>> 无符号右移运算符,不管移动前最高位是0还是1,右移后左侧产生的空位部分都以0来填充。

下面我们借一个demo帮助理解:

public static void main(String[] args){
int a = 16;
int b = a << 2;//左移2,等同于16 * 2的2次方,也就是16 * 4
int c = a >> 2;//右移2,等同于16 / 2的2次方,也就是16 / 4 System.out.println("a的二进制数据为:" + Integer.toBinaryString(a));
System.out.println("a左移后二进制数据为:" + Integer.toBinaryString(b));
System.out.println("a右移后二进制数据为:" + Integer.toBinaryString(c)); System.out.println("a左移后的值为:" + b);
System.out.println("a右移后的值为:" + c);
}
}

查看运行结果,如图所示:

首先,16的二进制数据为:10000;

左移两位,10000变成1000000;

右移两位,10000变成100;

把得到的二进制数据转换成普通数据后,

a左移后的值为64,既16 * 2的2次方(16 * 4)。

a右移后的值为4,既16 / 2的2次方(16 / 4)。

看完这个demo再理解移位运算符是不是就简单很多?

最新文章

  1. bind绑定参数
  2. Tuple,Array,Map,文件操作
  3. DevSecOps 实施篇!系列(二)
  4. NTP 服务器配置
  5. zedboard--交叉编译Opencv库的生成 分类: shell ubuntu fool_tree的笔记本 ZedBoard OpenCV 2014-11-08 18:57 171人阅读 评论(0) 收藏
  6. Linux配置FTP服务器
  7. HDU 5781 ATM Mechine
  8. C# 窗体在线2,8,16进制转换以及,在线更新时间
  9. poj 3400 Dropping the stones
  10. 遍历数组中的元素(含es6方法)
  11. C++框架_之Qt的开始部分_概述_安装_创建项目_快捷键等一系列注意细节
  12. 寒假训练——搜索 G - Xor-Paths
  13. linux &lt;&lt;eof
  14. The system is running in low-graphics mode UB16
  15. kbengine学习1 安装
  16. kafka各个版本特点介绍和总结
  17. spring创建单例bean
  18. 作死自救日记——不小心修改linux下/etc/sudoers权限的解决办法
  19. 一致性hash算法小结
  20. [uiautomator篇] uiautoviewer 定位不到元素

热门文章

  1. REST接口调用经验
  2. linux 重定向 标准错误与标准输出到同一文件
  3. Linxu 学习记录
  4. Google工作原理
  5. php 验证码代码
  6. 删除json对象中空值
  7. Spring Cloud Config 配置中心 自动加解密功能 jasypt方式
  8. Matlab基本用法
  9. thinkphp 无限极分类的数据库设计及效果测试
  10. tensorflow里面共享变量、name_scope, variable_scope等如何理解