public class Test {
public static void main(String[] args) {
// 1、左移( << )
// 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0://
// 0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20
System.out.println(5 << 2);// 运行结果是20
// 2、右移( >> ) 高位补符号位
// 0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:
// 0000 0000 0000 0000 0000 0000 0000 0001
System.out.println(5 >> 2);// 运行结果是1
// 3、无符号右移( >>> ) 高位补0
// 例如 -5换算成二进制后为:0101 取反加1为1011
// 1111 1111 1111 1111 1111 1111 1111 1011
// 我们分别对5进行右移3位、 -5进行右移3位和无符号右移3位:
System.out.println(5 >> 3);// 结果是0
System.out.println(-5 >> 3);// 结果是-1
System.out.println(-5 >>> 3);// 结果是536870911
//
4、按位与( & )
// 位与:第一个操作数的的第n位于第二个操作数的第n位如果都是1,那么结果的第n为也为1,否则为0
System.out.println(5 & 3);// 结果为1
System.out.println(4 & 1);// 结果为0
//
5、按位或( | )
// 第一个操作数的的第n位于第二个操作数的第n位 只要有一个是1,那么结果的第n为也为1,否则为0
System.out.println(5 | 3);// 结果为7
//
6、按位异或( ^ )
// 第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0
System.out.println(5 ^ 3);//结果为6
//
7、按位非( ~ )
// 操作数的第n位为1,那么结果的第n位为0,反之。
System.out.println(~5);// 结果为-6
}
}
分享到:
相关推荐
Java中的位运算是一种高效的操作方式,它可以直接对数据的二进制表示进行操作,从而实现快速计算和优化算法。在Java编程中,位运算通常用于处理底层数据结构、提高算法性能以及解决特定问题。以下是对给定文件中提到...
在阅读《JAVA中位运算符和移位运算符.docx》文档后,您将能更深入地理解这些运算符的实际应用和潜在的陷阱。无论是学习源码解析还是使用相关工具,掌握这些知识都将对您的Java开发工作大有裨益。
它首先从`start`字符串中提取出位0、4、10和13,然后通过异或(^)运算生成新的位13(`x13`)。这个异或操作相当于执行了LFSR的线性反馈函数。接着,`start_buffer`用于更新寄存器状态,移除最左边的一位并添加新...
接下来是位运算符,包括`&`(按位与)、`|`(按位或)、`^`(按位异或)、`~`(按位非)、`(左移)、`>>`(有符号右移)和`>>>`(无符号右移)。位运算符对整数类型的二进制表示进行操作: 1. **按位与 (`&`)** 和...
- `|`(按位或):设置特定位为1。 - `^`(位异或):翻转特定位,交换变量。 6. 二进制补码运算公式: - 补码运算可以用于简化加减乘除,如`x+y`、`x-y`、`x^y`等。 总的来说,位运算在编程中是强大且高效的...
位运算不仅限于这些基本操作,还有如`&=`、`^=`、`|=`、`和`>>=`这样的复合赋值操作符,它们分别对应于按位与、按位异或、按位或、左移和右移后的赋值。 在实际应用中,位运算常常用于: 1. 不使用临时变量交换两个...
位运算符包括按位与(&)、按位或(|)、按位异或(^)和按位非(~)。这些运算符可以用来对二进制位进行逐位操作,从而实现诸如设置或清除特定位、交换变量等复杂操作。 总之,理解和熟练运用Java中的移位运算和...
1. **位运算符**:C#提供了包括按位与(&),按位或(|),按位异或(^)等位运算符。在异或加密中,我们主要使用^符号进行加密和解密。 2. **密钥和明文**:在异或加密中,我们需要一个密钥(通常为随机生成的一串二进制...
位运算符主要有六种:按位与(&),按位或(|),按位异或(^),按位取反(~),左移()和右移(>>). 1. **按位与(&)**: 这个运算符用于逐位比较两个二进制数,如果对应位置都是1,则结果位为1,否则为0。它常用于将某些位清...
- 使用按位或(`|`)可以将特定比特位置为1,例如:`s = s | mask` 其中 `mask` 在需要置1的位设置为1,其他位设置为0。 3. **取反和交换** - 使用按位异或(`^`)可以轻松地实现比特位的取反或交换,例如:`s = ...
位运算涉及到的操作主要包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)以及移位运算(、>>、>>>)。这些操作可以直接作用于二进制位上,因此效率非常高。 #### 二、位运算应用口诀 - 清零取反要用与 ...
二进制位运算,包括与(AND)、或(OR)、异或(XOR)和移位(shift)等操作,对于数字信号的处理、硬件内存的读写等应用来说至关重要。 数据在计算机中的表示方式包括原码、反码和补码。原码是指用一个字节表示一...
位运算是指直接对这些二进制位进行操作的运算,包括与(&)、或(|)、异或(^)和非(~)四种基本运算。 2. **位运算符详解**: - **按位与(&)**:对应位上都是1时结果才为1,否则为0,类似于逻辑与。在灯光开关的例子中...
2. 按位或(|):如果两个操作数的对应位至少有一个是1,则结果的对应位为1,否则为0。例如,01101101 | 00110111 = 01111111。 3. 按位异或(^):如果两个操作数的对应位不同,则结果的对应位为1,相同则为0。...
在这个“xor.rar_XOR_vc_crc_xor_xor_crc_异或_异或校验”的压缩包中,我们可以推测其包含的C++代码是关于如何使用异或运算来实现CRC校验的实例。 异或运算,全称为“Exclusive OR”,它的特点是对两个二进制位进行...
2. **按位或(|)**:只要两个对应的二进制位中有任意一个为1,结果位就是1。按位或常用于设置或激活某位,或者合并多个标志位。 3. **按位异或(^)**:若两个对应的二进制位相同,结果为0;若不同,则结果为1。异或...
本文将深入探讨C++中的二进制运算,包括按位与、按位或、按位异或、按位取反以及移位运算等核心操作,并通过具体实例来阐述它们的工作原理及应用场景。 #### 按位与运算 (&) 按位与运算符`&`用于比较两个数的二...