`
jdlsfl
  • 浏览: 156344 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java的位移操作

阅读更多

“<<”, “>>”, “>>>”在Java中是左移、有符号右移和无符号右移运算符。位移运算符只对int值进行操作,如果不是int,编译器会报错。在Java中,一个int的长度始终是32bit,也就是4个字节。

比如t>>>n的含义就是把整数t右移n位,高位补上零。所以如果t是个负数,最高位是1,那么经过无符号右移之后,就成了一个正数。比如 -1>>>31=1。

值得注意的是,虚拟机在进行位移操作之前,把位移的位数(即“t>>>n”中的n)对32取了模,左移或右移33位等价于移动1位,而且无论任何数,使其移动32位,其值都不会发生变化。因为在虚拟机看来,t>>>32与t>>>0是等价的(同理t<<32等价于t<<0)。移动64位也是如此,以此类推。

那如果移动的位数 n 是负数怎么办呢?。 这时虚拟机会先让n对32取模,变成一个绝对值小于32的负数,然后再加上32,直到 n 变成一个正数。比如(k>>>-1) ==> (k>>>31); (k>>-43) ==> (k>>-11) ==> (k>>>21)。

分享到:
评论
1 楼 小苹果把 2008-11-04  
位移操作是对整数而言,不单单是int吧,即byte,short,char,int,long

相关推荐

    java位运算操作

    Java位运算操作 左位移 右位移 与或非的操作

    Java byte 位移操作 注意事项

    Java对byte 的 + – * / &gt;&gt; &gt;&gt;&gt; &lt;&lt; & | ^ (加,减,乘,除,右移,左移,无符号右移,位与,位或,位异或)操作,均会是首先将byte转化为int, 再行运算。这一事实可能导致多种问题:  假设我们想进行如下...

    java modbusRTU协议实现平硐位移的报警和复位

    这个是用java写的,基于modbusRTU协议的,服务器发送数据给传感器,传感器返回数据给服务器,服务器根据数据来计算平硐的位移,如果大于某个值就报警,小于就复位不报警

    基于JAVA-gui的文本加解密小程序源码

    基于JAVA-gui的文本加解密小程序源码 本项目一共有四个类文件 第一个类文件是Mainpanel.java,实现主界面的绘制,用户输入或打开文本,显示执行结果,...第四个类文件是Encode.java,实现对文件的ASCii码位移加密操作。

    JAVA基础之java的移位运算

    因为Java 使用2的补码来存储负数,并且因为Java 中的所有整数都是有符号的,这样应用位运算符可以容易地达到意想不到的结果。例如,不管你如何打算,Java 用高位来代表负数。为避免这个讨厌的意外,请记住不管高位的...

    java编程基础,应用与实例

    3.7.6 位移(shift)运算符(、、) 29 3.7.7 关系运算符(、、=、=、==、!=) 31 3.7.8 快速逻辑与(&&)和快速逻辑或(||) 32 3.7.9 位运算符:位与(&)、位或(|)、位异或(^) 34 3.7.10 三目运算符(?:) 35 3.7.11...

    21天学通Java-由浅入深

    ”:非运算符 54 3.4.4 逻辑运算符总结 54 3.5 三元运算符 55 3.6 位运算符 55 3.6.1 “&”:按位与运算符 56 3.6.2 “|”:按位或运算符 56 3.6.3 “^”:按位异或运算符 57 3.7 位移运算符 57 3.7.1 “&gt;&gt;”:带...

    矩阵位移法matlab代码-MDM:Matrixdisplacementmethod/矩阵位移法

    操作系统: Microsoft Windows 10 家庭中文版 Version 10.0 (Build 14393) Java 版本: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode 实现了矩阵位移法的计算机运算,...

    btree:用Java实现B树

    树 用Java实现B树。 它实现了B树。... 因为它在添加键时使用数组,所以应将所有键的位移都大于键。 如果节点已满,它将首先拆分节点,然后再添加密钥以减少移位操作。 它使用堆栈来避免递归调用。

    matlab终止以下代码-AniML-java:随机森林机器学习算法/分类器的Java实现

    k均值,k中间值,均值漂移,中等位移。 然后,我可以使用随机森林来转换输入空间,并使用传统方法对其进行聚类。 要学习,我正在Kotlin中构建一些代码。 关于Java中的Random Forest(tm)的注意事项 真的可以使用...

    Java模拟计算机的整数乘积计算功能示例

    主要介绍了Java模拟计算机的整数乘积计算功能,简单分析了计算机数值进制转换与通过位移进行乘积计算的原理,并结合具体实例给出了java模拟计算机成绩运算的相关操作技巧,需要的朋友可以参考下

    prism:对地震传感器数据执行数据处理,将原始传感器计数转换为加速度,速度和位移信息

    此PRISM(强运动数据的处理和查看接口)存储库包含用于自动记录处理引擎的软件,该软件旨在对地震传感器数据进行数据处理,将原始传感器计数转换为加速度,速度和位移信息。 PRISM是独立于平台的,使用Java编码且...

    Android代码-RegionDetector

    支持缩放位移操作 支持双击缩放操作 提供渐变动画,拒绝生硬 支持自定义矢量图,但需满足一定要求 开放众多接口满足个性化定制 ... 原理介绍 实现思路介绍 使用说明 布局xml中添加: * 设置激活区域: ```java...

    ADRepasoJava2:数据访问-Java复习练习2

    最后,实现一个Vehicle Test类,该类执行以下操作:在创建紫色,位移125和功率25时分配摩托车来创建摩托车。在创建绿色,位移125,功率25和功率时分配摩托车来创建摩托车。座位数2.在创建蓝色,车轮数4,轴数2,...

    PL/SQL 基础.doc

    4) SQLJ: 很新的一种用Java访问Oracle数据库的方法,会的人不多; 5) JDBC 6) PL/SQL: 存储在数据库内运行, 其他方法为在数据库外对数据库访问,只适合ORACLE; 2. PL/SQL 1) PL/SQL(Procedual language/SQL)...

    Flash格斗动画的动作设计和动作的制作.doc

    (请下载这个视频演示: 点击下载此文件它将会很清楚告诉你整个过程的操作, 你会发现我在一些功能的操作上都使用的快捷键, 所以操作的过程很快, 如果有不明白的地方请把教程内容多阅读几遍, 这几乎是很有必要的!...

    multiway-heaps-algs4-inspired

    实施说明:尝试使用所有位移操作而不是乘法和除法(计算子节点和父节点)的版本。 令人惊讶的是,经验测试表明这种性能恶化。 我不知道为什么,如果你知道答案,请联系作者。 此版本支持堆宽度d ,任何正整数。 ...

    jspsmart.jar包及帮助文档

    作用:取得指定位移处的文件对象File(这是com.jspsmart.upload.File,不是java.io.File,注意区分)。 原型:public File getFile(int index)。其中,index为指定位移,其值在0到getCount()-1之间。 3、getSize ...

    JavaScript基础和实例代码

    1.11 JavaScript与Java、Java applet 1.12 JavaScript的未来如何 1.13 本章小结 第2章 JavaScript语言入门 2.1 编程准备 2.1.1 编程术语 2.1.2 脚本执行顺序 2.1.3 大小写敏感 2.1.4 空白字符 2.1.5 分号 2.1.6 块 ...

    源文件程序天下JAVASCRIPT实例自学手册

    1.11 JavaScript与Java、Java applet 1.12 JavaScript的未来如何 1.13 本章小结 第2章 JavaScript语言入门 2.1 编程准备 2.1.1 编程术语 2.1.2 脚本执行顺序 2.1.3 大小写敏感 2.1.4 空白字符 2.1.5 分号 2.1.6 块 ...

Global site tag (gtag.js) - Google Analytics