java中没有2进制的数据类型,对二进制的操作,需要使用三种操作符

<< 左移位操作符,算数左移           用来将一个数的二进制位序列左移若干位,高位左移后溢出,舍弃不用,右补0(结果会变大)
>> 右移位操作符,算数右移           用来将一个数的二进制位序列右移若干位,移到右端的低位被舍弃,最高位则移入原来高位的值,左侧用原符号位补齐,负的就填1,正的就填0(结果会变小)
>>> 无符号右移操作符,逻辑右移    用来将一个数的二进制位添零右移若干位,即向右移动若干位,移到右端的低位被舍弃,左侧添零,不管正负。所以它也叫无符号右移

a>>b;
a表示要操作的数
b表示要移的位数

123的32位二进制数: 0000 0000 0000 0000 0000 0000 0111 1011

123 >> 3 右移步骤如下:

0000 0000  0000 0000 0011 1101  右移一位(右移一位表示除2,反之左移一位表示乘2)
                           0000 0000  0000 0000 0001 1110  右移二位
                           0000 0000  0000 0000 0000 1111  右移三位 的结果转换成十进制8+4+2+1=15

123 >> 3 == 15

a>>b 等价于 a>>(b%32)
也就是说
a>>32 等价于 a>>>0,移32位等于没移
a>>33 等价于 a>>>1
a>>34 等价于 a>>>2

i <<= 1;//i = i<<1 i等于i乘以2的1次方

i <<= 2;//i = i<<2 i等于i乘以2的2次方

>>就是相除了

java 移位的更多相关文章

  1. java移位运算符具体解释

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

  2. java移位运算符详解

    http://soft.chinabyte.com/database/195/11553695.shtml java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和 ...

  3. java 移位运算符

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

  4. Java移位运算

    java中移位运算符有三种“<<”.“>>”.“>>>”,没有“<<<”运算符. “<<”运算符将二进制位进行左移,低位用0来填 ...

  5. 【原创】Java移位运算

    学习移位运算,首先得知道参与移位运算的类型的位数,那先来复习下Java基础类型的占位数吧. Java基础类型 Java基础类型总结一览表 类型 二进制位数 最大值 最小值 初始化值 表示形式 带符号 ...

  6. 【关于Java移位操作符&按位操作符】

    一.java按位运算符(操作符) 这段时间偶尔看一下源码,会发现有很多很基础的java知识在脑海中已经慢慢的淡成不常用记忆,于是打算捡起来一些. 按位运算符是来操作整数基本数据类型中的单个“比特”(b ...

  7. Java移位运算符 “

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zjx409/article/details/37569055 左移运算符(<<) 基本使 ...

  8. 使用java移位运算符进行转化

    import java.util.Scanner; public class Main { public static void main(String[] args) { new Main().sy ...

  9. Java 移位运算、符号位扩展

    类型取值范围 short 是1字节,即8位.而且 Java 中只有有符号数,所以最大值 0111,1111=2^7-1. 同时计算机中以补码形式存负数,所以可以多表示一个数,则最小值 1000,000 ...

  10. java移位运算的用途

    参考下面这篇文章 http://blog.csdn.net/gaowen_han/article/details/7163104 http://jinguo.iteye.com/blog/540150 ...

随机推荐

  1. 结合MapReduce和数据集Combining datasets with MapReduce

    While in the SQL-world is very easy combining two or more datasets - we just need to use the JOIN ke ...

  2. Windows环境搭建Red5流媒体服务器

    Windows环境搭建Red5流媒体服务器指南 测试环境:Windows 7 一.   下载安装程序 red5-server 下载地址 https://github.com/Red5/red5-ser ...

  3. javascript简单性能问题及学习笔记

    最近在看一本书:<高性能javaScript>,发现自己平时写js存在很多小细节上的问题,虽然这些问题不会导致程序运行出错,但是会导致界面加载变慢,用户体验变差,那么我们就来细细数一下应该 ...

  4. 交叉编译git

    git依赖openssl.zlib. 首先编译openssl ./Configure linux-armv4 shared 修改Makefile,CC.RANLIB.MAKEDEPPROG为对应的交叉 ...

  5. hdu 4491 Windmill Animation

    A windmill animation works as follows: A two-dimensional set of points, no three of which lie on a l ...

  6. POJ 1836-Alignment(DP/LIS变形)

    Alignment Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13465   Accepted: 4336 Descri ...

  7. Mac Finder中如何复制当前完整路径

    1.拖到命令行 2.在Finder中command+i 会弹出详细信息,然后[位置]处进行 copy 3.利用Automator,添加一个服务的快捷键. 转自:http://q.cnblogs.com ...

  8. 极客Web前端开发资源集锦

    本周我们带来的前端推荐包含当前热门的bootstrap,html5,css3等技术内容和新闻话题,如果你还想近一步学习如何开发,还可以关注我们的极客课程库,里面涵盖了现代开发技术的‘学’与‘习’的全新 ...

  9. C#.NET常见问题(FAQ)-如何把函数名作为参数传递给另一个函数

    在主窗体中使用的还是普通的函数,但是test函数有一个新的参数,就是method   这个method所指向的就是前面委托定义的method     更多教学视频和资料下载,欢迎关注以下信息: 我的优 ...

  10. hdu1027 Ignatius and the Princess II (全排列 &amp; STL中的神器)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=1027 Ignatiu ...