当前位置: 首页 > article >正文

Java的三种移位运算

1、Java移位运算符有一下三种:

① <<   : 左移运算符,num << 1,相当于num乘以2

② >>   : 右移运算符,num >> 1,相当于num除以2

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

说明:对于>>> 无符号右移,忽略符号位,空位都以0补齐

value >>> num     --   num 指定要移位值value 移动的位数。

无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位  无符号右移运算符>>> 只是对32位和64位的值有意义

package com.jdk.pbyte;/*** Created by Liuxd on 2018-11-03.*/
public class TestByte {public static void main(String[] args) {System.out.println("-----------------------------------");int number = 10;//原始数二进制printNumBinaryInfo("原始数据",number);System.out.println("-----------------------------------");//左移一位int numberLeft1 = number << 1;printNumBinaryInfo("左移一位", numberLeft1);//右移一位int numberRight1 = number >> 1;printNumBinaryInfo("右移一位", numberRight1);//左移二位int numberLeft2 = number << 2;printNumBinaryInfo("左移二位", numberLeft2);//右移二位int numberRight2 = number >> 2;printNumBinaryInfo("右移二位", numberRight2);//无符号右移一位int numberNoSymBolRight1 = number >>> 1;printNumBinaryInfo("无符号右移一位", numberNoSymBolRight1);//无符号右移一位int numberNoSymBolRight2 = number >>> 2;printNumBinaryInfo("无符号右移二位", numberNoSymBolRight2);System.out.println("-----------------------------------");}/*** 打印信息* @param msg* @param num*/private static void printNumBinaryInfo(String msg, int num) {System.out.println(msg + " 十进制:" + num + " 对应二进制:" + Integer.toBinaryString(num));}
}

打印结果:

----------------------------------------------------------------------
原始数据 十进制:10 对应二进制:1010
----------------------------------------------------------------------
左移一位 十进制:20 对应二进制:10100
右移一位 十进制:5 对应二进制:101
左移二位 十进制:40 对应二进制:101000
右移二位 十进制:2 对应二进制:10
无符号右移一位 十进制:5 对应二进制:101
无符号右移二位 十进制:2 对应二进制:10
----------------------------------------------------------------------

http://www.lryc.cn/news/2418663.html

相关文章:

  • 笔记-信息系统安全管理-信息系统的安全属性
  • Portal实现原理 --转载
  • 输出“A、B...Z、AA、AB...AZ、BA、BB...BZ.......”的结构
  • squirrel sql client linux,SQuirreL SQL Client
  • 手机qq2012(android)1.0,手机qq2012安卓1.0 几个版本改进后的正式版本
  • fbreader android源码分析,开源阅读器FBReader Android版本的编译
  • 获取flash显示区域 的 getBounds 和 getRect
  • 你用 Python 写过哪些有趣的脚本?
  • 博客系统第1关:博客系统之用户注册
  • 一文读懂面试官都在问的Log4J2漏洞
  • 95-260-058-源码-检查点-CheckpointBarrierHandler
  • 一款挂靠QQ的盗号木马清理记
  • VOIP
  • Zephry开发指南——环境变量
  • 【CTF之Crypto】与佛论禅解密~罰亦般諳醯至上闍切羯哆究南缽寫奢婆罰夢梵究怯娑
  • 十大轻量级Linux发行版汇总
  • Exchange 2007邮件服务器的搭建和部署
  • 解决Linux国内yum源不能用的问题
  • 百度识图原理分析 推测其发展方向…
  • BCG 动态链接库和静态链接库
  • 【鸿蒙】数据管理--关系型数据库
  • 电子邮件注册网站是什么,163电子邮件注册流程详解
  • 将软件安装到SD卡丨丨完整详细Link2SD教程(包括SD分区教程)
  • Struts2 验证码图片实例
  • 驻极体式MIC电路设计
  • 安卓联系人头像包_【IOS/安卓】你肯定会喜欢的一款神器
  • .net core ef oracle,.NET Core EntityFrameworkCore(EF Core)介绍
  • 网页指针css代码,css常用鼠标指针形状代码
  • php socket 教程,php实现socket的方法
  • Java中的递归(recursion)方法----简单介绍加演示