算术左移运算符

>>运算规则:按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1.
  语法格式:
  需要移位的数字 >> 移位的次数

package com.zzwx.test.shifting;public class MainRight {public static void main(String[] args) {for (int p = 50; p < 55; p++) {System.out.println("算术右移位 - " + p + "/");for (int n = 1; n <= 4; n++) {System.out.println("需要移位的数字 : " + p + " \t 转换二进制 : "+ toBinaryString(p) + " \t 移位量 : " + n+ " \t 移位后的二进制 : "+ shiftToBinaryRight(toBinaryString(p), n)+ " \t value : " + (p >> n));}System.out.println("算术右移位 - " + p + "/");}System.out.println("算术右移位 ------>    p >> n = [p / 2的n次方 >= 1 --> 取整]  || [p / 2的n次方 < 1 --> 0]");}/*** 获取当前数字的二进制* * @param num*            int数字* @return 二进制字符*/public static String toBinaryString(int num) {return Integer.toBinaryString(num);}/*** 通过移位量获取移位后的二进制* * @param binaryStr*            需要移位的二进制* @param shift*            偏移量* @return 移位后的二进制*/public static String shiftToBinaryRight(String binaryStr, int shift) {binaryStr = binaryStr.substring(0, binaryStr.length() - shift) +"."+binaryStr.substring(binaryStr.length() - shift, binaryStr.length());return binaryStr;}}

测试结果

算术右移位 - 50/
需要移位的数字 : 50     转换二进制 : 110010      移位量 : 1     移位后的二进制 : 11001.0   value : 25
需要移位的数字 : 50     转换二进制 : 110010      移位量 : 2     移位后的二进制 : 1100.10   value : 12
需要移位的数字 : 50     转换二进制 : 110010      移位量 : 3     移位后的二进制 : 110.010   value : 6
需要移位的数字 : 50     转换二进制 : 110010      移位量 : 4     移位后的二进制 : 11.0010   value : 3
算术右移位 - 50/
算术右移位 - 51/
需要移位的数字 : 51     转换二进制 : 110011      移位量 : 1     移位后的二进制 : 11001.1   value : 25
需要移位的数字 : 51     转换二进制 : 110011      移位量 : 2     移位后的二进制 : 1100.11   value : 12
需要移位的数字 : 51     转换二进制 : 110011      移位量 : 3     移位后的二进制 : 110.011   value : 6
需要移位的数字 : 51     转换二进制 : 110011      移位量 : 4     移位后的二进制 : 11.0011   value : 3
算术右移位 - 51/
算术右移位 - 52/
需要移位的数字 : 52     转换二进制 : 110100      移位量 : 1     移位后的二进制 : 11010.0   value : 26
需要移位的数字 : 52     转换二进制 : 110100      移位量 : 2     移位后的二进制 : 1101.00   value : 13
需要移位的数字 : 52     转换二进制 : 110100      移位量 : 3     移位后的二进制 : 110.100   value : 6
需要移位的数字 : 52     转换二进制 : 110100      移位量 : 4     移位后的二进制 : 11.0100   value : 3
算术右移位 - 52/
算术右移位 - 53/
需要移位的数字 : 53     转换二进制 : 110101      移位量 : 1     移位后的二进制 : 11010.1   value : 26
需要移位的数字 : 53     转换二进制 : 110101      移位量 : 2     移位后的二进制 : 1101.01   value : 13
需要移位的数字 : 53     转换二进制 : 110101      移位量 : 3     移位后的二进制 : 110.101   value : 6
需要移位的数字 : 53     转换二进制 : 110101      移位量 : 4     移位后的二进制 : 11.0101   value : 3
算术右移位 - 53/
算术右移位 - 54/
需要移位的数字 : 54     转换二进制 : 110110      移位量 : 1     移位后的二进制 : 11011.0   value : 27
需要移位的数字 : 54     转换二进制 : 110110      移位量 : 2     移位后的二进制 : 1101.10   value : 13
需要移位的数字 : 54     转换二进制 : 110110      移位量 : 3     移位后的二进制 : 110.110   value : 6
需要移位的数字 : 54     转换二进制 : 110110      移位量 : 4     移位后的二进制 : 11.0110   value : 3
算术右移位 - 54/
算术右移位 ------>    p >> n = [p / 2的n次方 >= 1 --> 取整]  || [p / 2的n次方 < 1 --> 0]

转载于:https://blog.51cto.com/10960988/1793378

Java移位运算之算术右移位相关推荐

  1. java 移位 简书_js,java中的 无符号右移位符,左移位符,有符号右移位符

    移位运算就是对二进制进行有规律低移位.移位运算可以设计很多奇妙的效果,在图形图像编程中应用广泛. "< "< 把数字 5 向左移动 2 位,则返回值为 20. cons ...

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

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

  3. C 语言中负数移位运算讲解

    C 语言中负数移位运算讲解 "<<".">>"为移位运算符. "<<"为左移位运算符,即数据字节中的每个 ...

  4. 计算机中的数(二):定点数的移位运算和加减运算

    参考资料: 张代远<计算机组成原理教程 第二版>清华大学出版社 唐朔飞<计算机组成原理>高等教育出版社 <2012计算机组成原理 联考复习指导>机械工业出版社 &l ...

  5. 计算机组成原理移位运算实验报告,移位运算器实验报告.doc

    移位运算器实验报告 移位运算器 实验报告 课程名称: 计算机组成原理 姓名/学号: 实验名称: 算术逻辑运算 专业: 软件工程 班级: 软件工程班 指导教师: 实验日期: 2011年 10月 26日 ...

  6. 关于Verilog HDL的移位运算

    在Verilog HDL中有两种移位运算符. <<:(左移位运算符) >>:(右移位运算符) 其使用方法如下: a >> n; a << n; a代表要 ...

  7. 计算机组成原理实验移位运算,计算机组成原理移位运算实验.docx

    计算机组成原理移位运算实验 实验4 移位运算实验 实验目的 1.掌握移位寄存器的工作原理及其应用. 2.熟悉移位寄存器的逻辑功能及实现各种移位功能的方法.实验设备 74LS194组件一片,单脉冲一个, ...

  8. java 大于或等于_【Java】运算符(算术、赋值、比较(关系)、逻辑、条件、位运算符)...

    运算符 运算符: 1.算术运算符 2.赋值运算符 3.比较运算符(关系运算符) 4.逻辑运算符 5.条件运算符 6.位运算符 表达式:操作数+运算符 1.按照操作数个数的分类: (1)一元运算符:操作 ...

  9. Java二进制位运算、移位运算、、

    为什么80%的码农都做不了架构师?>>>    Java二进制位运算.移位运算 思考题 1.请看下面的代码段,回答a,b,c,d,e结果是多少? public static void ...

最新文章

  1. iOS 11开发教程(十四)iOS11应用代码添加视图
  2. Java面试中常问的计算机网络方面问题
  3. python的开发环境有哪些系统_Win10下配置机器学习python开发环境
  4. Linux source用法(转)
  5. Mybatis介绍、jdbc操作数据库原始写法以及Mybatis架构
  6. IIS 5,6,7区别
  7. Android-完全退出当前应用程序-新公司学习到的细节
  8. Linux 之 利用Google Authenticator实现用户双因素认证
  9. Unity3D基础32:屏幕类、时间类与数学类
  10. matlab 指定路径保存图片_关于matlab图片保存方式
  11. 利用Microsoft Visual Studio查看.dll文件的依赖项及内部函数名
  12. JDK的安装及环境变量配置
  13. 【性能优化】记录一次YounGC峰值优化
  14. 独家-县域统计年鉴Excel版(2000-2021年)-包含县市及乡镇卷
  15. EasyExcel web上传下载功能实现
  16. mysql复制数据到同一张表
  17. php实现金币提现,哪位php大神帮忙写个金币转换函数
  18. 基于STM32采集CO2(MH-Z19C)传感器数据
  19. HTML(二)列表、表格、表单元素
  20. C# winform PictureBox显示opencv Mat图片

热门文章

  1. 为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式...
  2. win下的输入流结束符
  3. 关于webpack的使用
  4. 【洛谷 P5341】 [TJOI2019]甲苯先生和大中锋的字符串(后缀自动机)
  5. Fescar 发布 0.3.0 版本, 支持 Eureka 注册中心
  6. maven私有库搭建
  7. Jenkins 快速上手指南
  8. 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...
  9. JavaScript Math和Number对象
  10. 如何选择高性价比的控件产品