java 位移运算,先出【运算结果】,不懂的可以运行程序:
6的二进制是: 110
6进行左移两位运算后结果是:11000,也就是24,可以看出来,正数的左移N位就是在右边末尾加N个0
-33的二进制是: 11111111111111111111111111011111
-33进行左移两位运算后结果是:11111111111111111111111101111100,也就是-132,可以看出来,负数的左移N位就是在右边末尾加N个0,为了保持位数不变,高位直接舍去
124的二进制是: 1111100
124进行右移两位位位运算后结果是:11111,也就是31可以看出正数右移就是在高位补0,然后为保持位数不变,低位舍去对应位数
-124的二进制是: 11111111111111111111111110000100
-124进行右移两位位位运算后结果是:11111111111111111111111111100001,也就是-31
124的二进制是: 1111100
124进行右移三位位移运算后结果是:1111,也就是15可以看出如果移位的位数过多会直接舍去最低位
-45的二进制是: 11111111111111111111111111010011
-45进行右移19位有符号位移运算后结果是:11111111111111111111111111111111,也就是-1,可以看出来,无符号负数位移是高位补1
-45进行右移19位 无符号 位移运算后结果是:1111111111111,也就是8191,可以看出来,无符号位移是即使是负数高位也是补0
代码如下:
package com.hxw.T2; public class ShiftOperate { /** * @param args */ public static void main(String[] args) { // 每个int整数是32位我们二进制用0000 0000 0000 0000 0000 0000 0000 0000 来表示0 //0000 0000 0000 0000 0000 0000 0000 0110 表示6 System.out.println("6的二进制是: "+Integer.toBinaryString(6)); System.out.println("6进行左移两位运算后结果是:"+(Integer.toBinaryString(6<<2))+",也就是"+(6<<2)+",可以" + "看出来,正数的左移N位就是在右边末尾加N个0"); System.out.println(); System.out.println("-33的二进制是: "+Integer.toBinaryString(-33)); System.out.println("-33进行左移两位运算后结果是:"+(Integer.toBinaryString(-33<<2))+",也就是"+(-33<<2)+",可以" + "看出来,负数的左移N位就是在右边末尾加N个0,为了保持位数不变,高位直接舍去"); System.out.println(); System.out.println("124的二进制是: "+Integer.toBinaryString(124)); System.out.println("124进行右移两位位位运算后结果是:"+(Integer.toBinaryString(124>>2))+",也就是"+(124>>2)+"可以" + "看出正数右移就是在高位补0,然后为保持位数不变,低位舍去对应位数"); System.out.println(); System.out.println("-124的二进制是: "+Integer.toBinaryString(-124)); System.out.println("-124进行右移两位位位运算后结果是:"+(Integer.toBinaryString(-124>>2))+",也就是"+(-124>>2)); System.out.println(); System.out.println("124的二进制是: "+Integer.toBinaryString(124)); System.out.println("124进行右移三位位移运算后结果是:"+(Integer.toBinaryString(124>>3))+",也就是"+(124>>3)+"可以看出如果移位的位数过多会直接舍去最低位"); System.out.println(); System.out.println("-45的二进制是: "+Integer.toBinaryString(-45)); System.out.println("-45进行右移19位有符号位移运算后结果是:"+(Integer.toBinaryString(-45>>19))+",也就是"+(-45>>19)+",可以看出来,无符号负数位移是高位补1"); System.out.println("-45进行右移19位 无符号 位移运算后结果是:"+(Integer.toBinaryString(-45>>>19))+",也就是"+(-45>>>19)+",可以看出来,无符号位移是即使是负数高位也是补0"); System.out.println(); } }
相关推荐
MD5算法的基本思想是将任意长度的输入(又叫做预映射pre-image)通过一系列的数学运算(包括位移、异或、加法等)转换成固定长度的输出,这个输出就是MD5摘要。MD5摘要通常是一个128位的二进制数,通常用32位的十六...
总结来说,本项目提供了一个用Java实现的有限单元法求解跨中位移的例子,涉及到弹性力学、有限单元法的基本理论,以及Java编程中矩阵运算的实践。对于学习有限单元法和Java编程的初学者,这是一个很好的实践案例,有...
对于位运算,2的10次方在二进制中是1000000000,这对于理解位移运算符(左移`和右移`>>`)来说是个很好的例子。例如,可以用左移运算符来快速将一个数乘以2的幂次: ```java int num = 1; num = num ; //相当于num ...
- **位移运算**:左移运算符 `和右移运算符 `>>` 用于将二进制位向左或向右移动。 - **自增自减运算**:前缀 `--` 或 `++` 改变自身值后立即返回新的值;后缀 `--` 或 `++` 先返回当前值,再改变自身值。 - **逻辑...
- **知识点**:这个例子展示了如何在Java中定义一个简单的类和主方法。`System.out.println()`用于在控制台上打印一行文本。如果主方法签名正确,那么这段代码会正常编译并运行,输出指定的字符串。 3. **Java...
源码中可能会有使用模2运算的例子,例如检查一个数是否为偶数(如果一个数模2的余数为0,则它是偶数),或者在加密算法中使用模2运算来实现特定的位操作。工具方面,一些编程语言提供的内置函数或运算符,如Java的`%...
遍历数组nums,对每个元素进行位移运算,如果某一位为1,则对应的cnt[]数组位置加1。完成遍历后,对cnt[]中的每个元素取模3,然后根据结果重建只出现一次的数字。 具体实现中,我们使用一个变量ans初始化为0,然后...
在JAVA中处理这种数据转换通常会用到位运算符,如位移、与、或、异或等,以及数据类型转换,如byte、short、int之间的转换。此外,可能还需要理解特定的IC卡协议,比如ISO/IEC 7816系列标准,这些协议定义了卡片与...
- `String`类在Java中是不可变的,因此不能直接进行位移操作。所以选项B中的`s>>>=2;`是非法的。 ### 16. private修饰符的作用范围 **题目**:当用private修饰的成员变量时,以下选项正确的是 **知识点**: - `...
在JAVA中,可以使用位移和按位与、按位异或等操作来实现。这种方法的优点是无需预先准备,但缺点是计算效率相对较低,尤其是对于长数据流,计算过程会比较耗时。 3. **JAVA实现CRC的查表法** 查表法是预先计算出...
8. **2乘以8的计算**:最有效率的方式是直接使用`2 ,这是位移运算,相当于乘以2的3次方,即8。 9. **final关键字**:final修饰变量时,如果是基本类型,其值不能改变;如果是引用类型,变量指向的内存地址不能改变...
处理后的新字符会保持在同一字母表区域内,因为我们使用了模26运算。对于非字母字符,我们直接添加到结果字符串中,不进行任何改变。 现在,我们可以通过实例化`Caesar`类并调用相应方法来进行加密和解密操作。例如...
这些内容涵盖了Java的基础语法、逻辑运算、循环控制以及整型溢出等方面,是Java程序员面试准备的重要参考资料。通过深入理解这些知识点,可以帮助开发者更好地掌握Java语言的核心特性,提高编程技巧。
SHA-1算法的原理是通过一系列复杂的数学运算,包括异或、位移、加法等操作,对输入数据进行处理,生成一个唯一的固定长度摘要。由于不同的输入会产生截然不同的输出,因此,只要文件内容有丝毫改变,经过SHA-1运算后...
通过这个例子,我们可以看到Java程序的基本结构:`public class`声明一个公共类,`public static void main(String[] args)`则是程序的入口方法。`System.out.println()`则用于向控制台输出信息。 #### StudentTest...
### Java最新面试宝典知识点详解 #### 一、Java基础部分 **1.1 & 和 && 的区别** - **相同点**: `&` 和 `&&` 都可以用作逻辑与运算符,表示逻辑与(AND...- 位移运算比乘法运算更快,特别是在处理大整数时效率更高。
- **F函数**:这是核心运算,F(Ri-1, Ki)将右半部分Ri-1与子密钥Ki进行异或操作,然后通过S盒(S-Box)和P盒(P-Box)进行非线性转换。 - **半行位移**:左半部分L(i-1)向右移动一位,右半部分Ri-1保持不变。 - *...
在这个例子中,`CRC32`类是Java内置的`java.util.zip`包的一部分,它提供了一个方便的API来计算CRC32校验码。`update()`方法接受字节数组作为输入,`getValue()`则返回计算得到的CRC值。 **应用和纠错能力:** CRC...
Java中的位移运算 题目给出的示例代码中,涉及到了位移运算。表达式 89 >> 1 的结果是 **A** 44。这是将89的二进制表示向右移动一位,相当于除以2。 ### 23. Applet中的绘图方法 题目提到,在Applet中显示文字、...
在这个例子中,`b`被赋值为`3`,`c`又被赋值为`b`的值,即`3`。最后`a`被赋值为`c`的值,同样也是`3`。所以打印出来的结果是`3`。 #### 八、总结 本文详细介绍了Java中的运算符与表达式,包括不同类型的运算符以及...