今天写代码忽然遇到了 << 和 >> ;感觉是那么的似曾相识 但却不知道是干什么用的,
今天记录一下(直接上代码):

左移运算符

public static void main(String[] args) throws ParseException {//左移运算符 <<int num1=2;int num2 =num1<<num1;// 公式:需要平移的数 <<  平移的位数  表示2的二进制 向左移两位 由 0010 变为1000  直接在后面补两个0System.out.println(num1+"  "+num2);//toBinaryString方法:把十进制转为二进制System.out.println(Integer.toBinaryString(num1)+"  "+(Integer.toBinaryString(num2)));}

右移运算符

在用右移运算符时,发现一个问题 如果二进制末尾
是1会怎么样:

        //二进制末尾为1int num3=7;int num4=num3 >> 2;//向右平移两位System.out.println(num3+"  "+num4);System.out.println(Integer.toBinaryString(num3)+"  "+(Integer.toBinaryString(num4)));//二进制末尾为0int num5=6;int num6=num5 >> 2;System.out.println(num5+"  "+num6);System.out.println(Integer.toBinaryString(num5)+"  "+(Integer.toBinaryString(num6)));

经过测试发现,这个右移就是直接是把最后两位直接砍掉。

----------------------------7.18----------------------------

今天来补充一点左移运算符的使用技巧
用<< 来表示 2^n 2的n次方 直接上代码

public static void main(String[] args) {int num1=2;int num2=3;int num3=4;int num4=5;int result1=1 << num1;//2的2次方int result2=1 << num2;//2的3次方int result3=1 << num3;//2的4次方int result4=1 << num4;//2的5次方System.out.println(result1+"\t"+result2+"\t"+result3+"\t"+result4+"\t");}

原理解析

拿1 << 3 =8为例
1的二级制为0001;
左移三位为1000;
二级制 1000 转化为十进制:1×2^3 + 0×2^2 + 0×2^1 + 0×2^0 = 1×2^3 + 0 + 0 + 0 = 8;
再比如1 << 5 =32为例
1的二级制为0001;
左移五位为100000;
二级制 100000 转化为十进制:1×2^5 + 0×2^4 + 0×2^3 + 0×2^2 + 0×2^1 + 0×2^0= 1×2^5 + 0 + 0 + 0 + 0 + 0= 32;

所以得出

1 << n= 1×2^n + 0 + 0 +……=2 ^ n

今天的学习时光就到这里了!

Java之移位运算符相关推荐

  1. 2 lt lt 8运算 java_Java移位运算符 lt;lt; gt;gt; gt;gt;gt;_Java_七九推

    简述 java有三种移位运算符,分别为: 左移运算符 << 右移运算符 >> 无符号右移运算符 >>> 首先,移位运算符根据名字可知是使用二进制进行运算的.在 ...

  2. java中的移位运算符

    移位运算符是在数字的二进制形式上进行平移.主要有左移(<<).带符号右移(>>)以及无符号右移(>>>). 左移运算符(<<)的运算规则为:按二进 ...

  3. java 偏移符号_java中的移位运算符总结

    java中的移位运算符:<>,>>>总结 java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> ...

  4. java中 移位运算_java中关于移位运算符的demo与总结(推荐)

    首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种. << 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0 ...

  5. java中的位移运算符_java中的移位运算符(, , )

    java中有3种移位运算符 < >>  :  右移运算符,不改变符号位,num >> n 表示二进制右移n位,结果相当于 num / (2的n次方) >>&g ...

  6. 关于Java中“+”加运算符和“”向前移位运算符混合使用时出现的错误

    1 致谢 感谢张晓龙院长编写的<Java程序设计与开发>提供的资料 2 问题描述 今天遇到1个很奇怪的问题 写一句很简单的运算代码就出错了 想不明白为什么  当时的初衷是这样的:想要完成1 ...

  7. java移位运算符详解

    java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的所有位都左移 ...

  8. Java中的逻辑运算符/移位运算符简单总结

    前段时间刷到了力扣关于位运算的题,这里浅浅记录一下! 1. 逻辑位运算 1.1 与 & &:按位与进行二进制计算,规则是同为1则为1,不同为0,具体如下: 0&0=0, 0&a ...

  9. JAVA基础(JAVA移位运算符)

    移位运算符就是在二进制的基础上对数字进行平移.按照平移的方向和填充数字的规则分为三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 在移位运算时, ...

  10. Java移位运算符不外乎就这三种

    Java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移) 1. 左移运算符 左移运算符<<使指定值的所有位都左移规 ...

最新文章

  1. 1030 完美数列(二分解法)
  2. 2007图灵奖得主离开了:模型检测先驱Edmund Clarke因新冠逝世
  3. java jsp转html_JSP页面转换为HTML页面,动态转静态
  4. Navicat 12连接PostgreSQL11.3数据库服务器
  5. 不要再被 Python 洗脑了!!
  6. html页面头部里的meta
  7. 「技美之路」图形 1.1 渲染流水线
  8. django 1.8 官方文档翻译:8-5 加密签名
  9. 基于Flume的美团日志收集系统(一)架构和设计
  10. 解决Linux中crontab不执行ntpdate问题
  11. 现在程序员的工资是不是被高估了?不存在的!
  12. OpenGL 渲染篇
  13. 在Windows系统下,Nginx反向代理缓存配置
  14. 简单有限元分析技术(详细步骤讲解)
  15. 前端接收pdf文件_前端利用pdfobject.js处理pdf文件
  16. matlab方差分析盒型图
  17. mutate  字段替换
  18. java格式化时间间隔_用Java本地化格式化时间间隔
  19. markdown的搬砖汇总
  20. 【云服务器】免费云服务器推荐

热门文章

  1. Redfish Data model (红鱼的资料模型)
  2. 永磁同步电机模型之坐标变换
  3. MAYA制作女猎人角色毛发-3D建模场景模型教程
  4. VGA、HDMI、DVI 和 DP接口
  5. java-pdf转word
  6. c语言ASCII码表详解(一)
  7. 杨辉三角 Python(利用嵌套列表)
  8. maven的下载与安装教程(超详细)
  9. flash cs4 如何新增自定义控件
  10. 中国互联网变天,小米上市后将彻底冲破 BAT 格局