`

JAVA中的位移

    博客分类:
  • JAVA
 
阅读更多

在使用一个字段按照二进制表示某些特定含义的时候经常使用位移操作,java中位移根据数据类型有些特殊处理。

以int为例,int共32位,第32位为符号位,所以得出以下结果

1<<31 = -2147483648

超过32位的会直接取模。

所以:

1<<32 = 1 

1<<33 = 2。

位移过后正数变为负数的情况也要注意,举个例子

782745866 <<16 

782745866 二级制表示为0010 1110 1010 0111 1100 0001 0000 1010

位移16位后为1100 0001 0000 1010 0000 0000 0000 0000

但是在java中,左移16位的十进制结果为-1056309248 其二进制表示为

1011 1110 1111 0110 0000 0000 0000 0000 

因为java中存放负数存的是补码,即是反码加1。

所以782745866 <<16 的结果为-1056309248

 

分享到:
评论

相关推荐

    java byte相互转换详解左右位移

    在Java中,基本数据类型byte与int之间的相互转换涉及到计算机的二进制运算、位移操作以及补码的概念。我们首先了解Java中int和byte的数据结构,然后探讨它们之间的转换方法及其背后的原理。 **基本数据类型结构:**...

    有限单元法求解跨中的位移java实现

    本项目是通过Java编程语言实现的,旨在计算跨中的位移,具体涉及到矩阵运算和线性代数的概念。 在有限单元法中,一个复杂的结构被划分为多个简单的单元,每个单元的特性可以通过其几何形状和材料属性来定义。然后,...

    10_02.rar_10_02_java 位移

    在Java编程语言中,"位移"操作是一种重要的算术运算,它涉及到二进制位的移动。在Java中,位移操作符包括左移()、右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)。这个名为"10_02.rar_10_02_java 位移"的压缩包文件,很可能包含了...

    动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip

    动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip动物位移小游戏Java实现,强行使用上...

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

    在本项目中,我们利用Java语言实现了ModbusRTU协议,以此来监控平硐(可能是矿山或其他类似结构)的位移情况,并进行报警与复位功能。 ModbusRTU是一种基于RS-485或RS-232串行通信的协议,它定义了设备如何在总线上...

    Java排列组合算法分析和代码实现

    在`Combination.java`文件中,你应该能看到这种位移法的实现,它通过维护一个组合数组,并在每次生成新组合时仅移动少数几位,以达到高效生成组合的目的。 文档`排列.doc`和`位移法实现组合.doc`将提供更详尽的解释...

    BASE64编码和解码的JAVA实现

    BASE64编码和解码的JAVA实现。 太简单了。直接调用API实现的。 反正不要分,你们看着下吧。

    基于Java实现的动物位移小游戏,数据库使用SQLite和MyBatis

    【作品名称】:基于Java实现的动物位移小游戏,强行使用上了SQLite和MyBatis 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目...

    点阵字库在JAVA中的实现源码

    在JAVA中,我们可以通过编程来实现点阵字库的功能,以支持自定义字体或者在特定场景下优化文本渲染。 在Java中,通常我们不直接操作点阵字库,因为Java的`java.awt.Font`类提供了丰富的字体支持,包括多种系统字体...

    Java byte 位移操作 注意事项

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

    JAVA工程师笔试题汇总(免费)

    知识点6:Java位移操作符 在Java中,有两种位移操作符:&gt;&gt;和&gt;&gt;&gt;. &gt;&gt;是带符号位移操作符,&gt;&gt;&gt;是无符号位移操作符。例如,1010 0000 0000 0000 0000 0000 0000 0000 &gt;&gt; 4将结果为0000 1010 0000 0000 0000 0000 0000 ...

    Java编写的CRC校验

    然后,我们需要对数据进行位移和异或操作,这些操作可以使用Java的位运算符完成。例如,`&gt;&gt;&gt;`用于无符号右移,`^`用于异或,`&`用于按位与。 以下是一个简单的CRC-32校验的Java实现步骤: 1. 初始化CRC寄存器,通常...

    java版本DAM6080测平硐位移的完整代码

    Java版本的DAM6080测平硐位移程序是一个用于实时监测和记录矿井位移数据的应用。DAM6080设备通常用于地质测量,它具有多个传感器通道来收集不同位置的位移信息。这个程序的核心功能是定时接收来自DAM6080的7个通道的...

    JAVA选择题复习.txt

    - Java中的位移运算符包括`&gt;&gt;`(右移)、`(左移)和`&gt;&gt;&gt;`(无符号右移)。 #### 19. 位运算操作 - `&gt;&gt;&gt;`为无符号右移运算符,用于将二进制数进行右移操作,高位补零。 #### 20. 浮点数取模运算 - 浮点数也可以...

    JAVA实现的Caesar加密算法

    最后,压缩包中的"Caesar"可能包含了实现上述功能的Java源代码文件,例如`CaesarCipher.java`(包含加密和解密逻辑的类)和`CaesarGUI.java`(包含SWT界面的类)。通过阅读和理解这些代码,你可以更好地掌握Java编程...

    Java byte数组与其他类型转换

    总的来说,Java中byte数组与其他基本类型之间的转换是通过位移和按位操作来完成的,这允许程序员在处理二进制数据时灵活地进行字节序列的解析和构造。了解并熟练掌握这些转换方法,对于处理涉及二进制数据的Java程序...

Global site tag (gtag.js) - Google Analytics