Java 移位运算符:<< ,>>, >>>

1.<< :左移运算符,num<< 1,不区分正负数,低位补0,相当于num*2

2.>> :右移运算符,num>>1,如果该数为正,则高位补0,若为负数,则高位补1

3.>>> :无符号右移,忽略符号位,空位都以0补齐

import javax.print.attribute.standard.PrinterInfo;

/**

* @author Evan Yang

* @version 1.0

* @create date:2019-5-6

*/

public class DisplacementDemo {

public static void main(String[] args) {

int number=20;

System.out.println("原始number的二进制结果是:"+Integer.toBinaryString(number));

//左移

Integer leftOneNumber=number<<1;

//相当于乘以2

System.out.println("左移一位number的值是:"+leftOneNumber);

System.out.println("左移一位number的二进制结果是:"+Integer.toBinaryString(leftOneNumber));

Integer leftTwoNumber=number<<2;

//相当于乘以4

System.out.println("左移两位number的值是:"+leftTwoNumber);

System.out.println("左移两位number的二进制结果是:"+Integer.toBinaryString(leftTwoNumber));

//右移

Integer rightOneNumber=number>>1;

//相当于除以2

System.out.println("右移一位number的值是:"+rightOneNumber);

System.out.println("右移一位number的二进制结果是:"+Integer.toBinaryString(rightOneNumber));

Integer rightTwoNumber=number>>2;

//相当于除以4

System.out.println("右移两位number的值是:"+rightTwoNumber);

System.out.println("右移两位number的二进制结果是:"+Integer.toBinaryString(rightTwoNumber));

}

}

运行结果为:

原始number的二进制结果是:10100

左移一位number的值是:40

左移一位number的二进制结果是:101000

左移两位number的值是:80

左移两位number的二进制结果是:1010000

右移一位number的值是:10

右移一位number的二进制结果是:1010

右移两位number的值是:5

右移两位number的二进制结果是:101

看了以上demo,现在是不是对java左右移了解了很多了呢?

>>> : 表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0

正数: r = 20 >>> 2

的结果与 r = 20 >> 2 相同;

负数: r = -20 >>> 2

注:以下数据类型默认为int 32位

-20:源码:10000000 00000000 00000000 00010100

反码:11111111 11111111 11111111 11101011

补码:11111111 11111111 11111111 11101100

右移:00111111 11111111 11111111 11111011

结果:r = 1073741819

java 除以2_Java最快速的算出乘2 和除2的结果相关推荐

  1. JAVA 2乘以8 方法_Java中用最有效率的方法算出2乘以8

    Java中用最有效率的方法算出2 乘以8 等於几? 2 << 3, 因为将一个数左移n 位,就相当于乘以了2 的n 次方,那么,一个数乘以8 只要将其左移3 位 (因为将一个数右移n 位, ...

  2. html输入日期算出星座,java输入日期计算星座

    java输入日期计算星座 [2021-01-31 12:59:06]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...

  3. JAVA班级年龄平均值代码_java用list集合存储学生信息并算出成绩平均值操作

    需求 键盘输入五名学生信息并录入list集合; 输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值: 计算并输出他们Java语言成绩的最大值和最小值. 思路 用Scanner 键盘输入 ...

  4. java 学生信息 list_java用list集合存储学生信息并算出成绩平均值操作

    需求 键盘输入五名学生信息并录入list集合; 输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值: 计算并输出他们Java语言成绩的最大值和最小值. 思路 用Scanner 键盘输入 ...

  5. java指定日期计算一年内第几天和给出一年内第几天算出指定日期

    java指定日期计算一年内第几天和给出一年内第几天算出指定日期 1.计算一年内第几天,部分参考的是https://blog.csdn.net/xinpengfei521/article/details ...

  6. 如何快速算出一个数有多少个因子(c++)

    如何快速算出一个数有多少个(多少种)因子(c++) int count(int n) {int sum = 1;for (int i = 2; i * i <= n; i++) {if (n % ...

  7. 用计算机算出90除以6.28,谁能帮忙出300道二年级下期的数学竖式题

    谁能帮忙出300道二年级下期的数学竖式题 谁能帮忙出300道二年级下期的数学竖式题 人气:936 ℃时间:2019-12-08 09:45:28 优质解答 25 -15 -80 = 10 -80 = ...

  8. java中怎么通过日期算出天数_Java如何通过计算两个日期的时间差来算出天数

    Java如何通过计算两个日期的时间差来算出天数,年月日,天数,时间,退房,时分 Java如何通过计算两个日期的时间差来算出天数 易采站长站,站长之家为您整理了Java如何通过计算两个日期的时间差来算出 ...

  9. 如何用Java算出100的阶乘

    今天小编突发奇想,一般的C语言和普通的计算器想要算出100的阶乘根本行不通,那么100的阶乘到底多大呢?想到Java中有个BigInteger类,于是,今天就用代码实现一下100的阶乘: import ...

最新文章

  1. EffectiveJava(v3) - chapter5: Enums And Annotations
  2. linux下使用automake、autoconf生成configure文件
  3. 如何利用CSS给同一个网页中的超链接设置设置不同的样式?
  4. HttpClient实现CSDN自动登录
  5. 飞畅科技-工业以太网的应用现状及前景展望
  6. 时间格式化,常用时间,格式
  7. Linux系统下搭建BUG管理系统---禅道
  8. Struts2 action的扩展名两种修改方法
  9. C++开源代码覆盖率工具OpenCppCoverage介绍(Windows)
  10. pytorch 入门学习 实现线性回归-5
  11. 360加速球效果实现
  12. 国产系统-Ubuntu Kylin优麒麟图文(VIP典藏2022版)
  13. 医学图像分割——Unet
  14. vue中的prop验证
  15. 固态硬盘坏了数据能恢复吗?(已解决)
  16. 杨明 南京师范大学计算机学院,陈松灿教授、杨明教授、耿新教授应邀来我校做学术报告...
  17. 低级语言和高级语言的区别
  18. 基层管理之正负向激励
  19. 【实验四 循环结构】7-4 sdut-C语言实验-求阶乘(循环结构)
  20. 微信小程序API——微信支付详解(顺便讲一下我遇见的坑)

热门文章

  1. 大学计算机基础实训指导第四版,大学计算机基础:学习指导与实训篇(第4版)...
  2. java服务器发送邮件_服务器通过模板发送邮件java代码
  3. java五层架构_Web五层架构
  4. mybatis 大量insert 出现sql io 异常_Java自学之mybatis:使用注解方式实现CURD
  5. hun 暑期实训之打牌 cin与scanf的输入
  6. B - Frogger(最短路之多条最短路径中最大权值的最小值)
  7. TensorFlow——Ubuntu系统上TensorFlow的安装教程
  8. 使textarea支持tab缩进
  9. 【lucene】入门级
  10. linux运维架构师职业规划