Java之移位运算符
今天写代码忽然遇到了 << 和 >> ;感觉是那么的似曾相识 但却不知道是干什么用的,
今天记录一下(直接上代码):
左移运算符
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之移位运算符相关推荐
- 2 lt lt 8运算 java_Java移位运算符 lt;lt; gt;gt; gt;gt;gt;_Java_七九推
简述 java有三种移位运算符,分别为: 左移运算符 << 右移运算符 >> 无符号右移运算符 >>> 首先,移位运算符根据名字可知是使用二进制进行运算的.在 ...
- java中的移位运算符
移位运算符是在数字的二进制形式上进行平移.主要有左移(<<).带符号右移(>>)以及无符号右移(>>>). 左移运算符(<<)的运算规则为:按二进 ...
- java 偏移符号_java中的移位运算符总结
java中的移位运算符:<>,>>>总结 java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> ...
- java中 移位运算_java中关于移位运算符的demo与总结(推荐)
首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种. << 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0 ...
- java中的位移运算符_java中的移位运算符(, , )
java中有3种移位运算符 < >> : 右移运算符,不改变符号位,num >> n 表示二进制右移n位,结果相当于 num / (2的n次方) >>&g ...
- 关于Java中“+”加运算符和“”向前移位运算符混合使用时出现的错误
1 致谢 感谢张晓龙院长编写的<Java程序设计与开发>提供的资料 2 问题描述 今天遇到1个很奇怪的问题 写一句很简单的运算代码就出错了 想不明白为什么 当时的初衷是这样的:想要完成1 ...
- java移位运算符详解
java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的所有位都左移 ...
- Java中的逻辑运算符/移位运算符简单总结
前段时间刷到了力扣关于位运算的题,这里浅浅记录一下! 1. 逻辑位运算 1.1 与 & &:按位与进行二进制计算,规则是同为1则为1,不同为0,具体如下: 0&0=0, 0&a ...
- JAVA基础(JAVA移位运算符)
移位运算符就是在二进制的基础上对数字进行平移.按照平移的方向和填充数字的规则分为三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 在移位运算时, ...
- Java移位运算符不外乎就这三种
Java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移) 1. 左移运算符 左移运算符<<使指定值的所有位都左移规 ...
最新文章
- 1030 完美数列(二分解法)
- 2007图灵奖得主离开了:模型检测先驱Edmund Clarke因新冠逝世
- java jsp转html_JSP页面转换为HTML页面,动态转静态
- Navicat 12连接PostgreSQL11.3数据库服务器
- 不要再被 Python 洗脑了!!
- html页面头部里的meta
- 「技美之路」图形 1.1 渲染流水线
- django 1.8 官方文档翻译:8-5 加密签名
- 基于Flume的美团日志收集系统(一)架构和设计
- 解决Linux中crontab不执行ntpdate问题
- 现在程序员的工资是不是被高估了?不存在的!
- OpenGL 渲染篇
- 在Windows系统下,Nginx反向代理缓存配置
- 简单有限元分析技术(详细步骤讲解)
- 前端接收pdf文件_前端利用pdfobject.js处理pdf文件
- matlab方差分析盒型图
- mutate 字段替换
- java格式化时间间隔_用Java本地化格式化时间间隔
- markdown的搬砖汇总
- 【云服务器】免费云服务器推荐