1、按二进制位进行“或”运算。 运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1; 即 :参加运算的两个对象只要有一个为1,其值为1。 例如:3|5 即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5的值得7。 另,负数按补码形式参加按位或运算。 “或运算”特殊作用: (1)常用来对一个数据的某些位置1。 方法:找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。 例:将X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。
2、异或运算符(^) 参加运算的两个数据,按二进制位进行“异或”运算。 运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0; 即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。 “异或运算”的特殊作用:
(1)使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。 例:X=10101110,使X低4位翻转,用X ^ 0000 1111 = 1010 0001即可得到。 (2)与0相异或,保留原值 ,X ^ 0000 0000 = 1010 1110。 从上面的例题可以清楚的看到这一点。
3、取反运算符(~) 参加运算的一个数据,按二进制位进行“取反”运算。 运算规则:~1=0; ~0=1; 即:对一个二进制数按位取反,即将0变1,1变0。 使一个数的最低位为零,可以表示为:a&~1。 ~1的值为1111111111111110,再按“与”运算,最低位一定为0。因为“~”运算符的优先级比算术运算符、关系运算符、逻辑运算符和其他运算符都高。
4、左移运算符(<<) 将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。 例:a = a << 2 将a的二进制位左移2位,右补0, 左移1位后a = a * 2; 若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
5、右移运算符(>>) 将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。 操作数每右移一位,相当于该数除以2。 例如:a = a >> 2 将a的二进制位右移2位, 左补0 or 补1 得看被移数是正还是负。 >> 运算符把 expression1 的所有位向右移 expression2 指定的位数。expression1 的符号位被用来填充右移后左边空出来的位。向右移出的位被丢弃。 例如,下面的代码被求值后,temp 的值是 -4: -14 (即二进制的 11110010)右移两位等于 -4 (即二进制的 11111100)。
var temp = -14 >> 2 无符号右移运算符(>>>) >>> 运算符把 expression1 的各个位向右移 expression2 指定的位数。右移后左边空出的位用零来填充。移出右边的位被丢弃。 例如:var temp = -14 >>> 2 变量 temp 的值为 -14 (即二进制的 11111111 11111111 11111111 11110010),向右移两位后等于 1073741820 (即二进制的 00111111 11111111 11111111 11111100)。
6、复合赋值运算符 位运算符与赋值运算符结合,组成新的复合赋值运算符,它们是: &= 例:a &= b 相当于a=a & b |= 例:a |= b 相当于a=a | b >>= 例:a >>= b 相当于a=a >> b <<= 例:a <<= b 相当于a=a << b ^= 例:a ^= b 相当于a=a ^ b 运算规则:和前面讲的复合赋值运算符的运算规则相似。 不同长度的数据进行位运算 如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。 以“与”运算为例说明如下:我们知道在C语言中long型占4个字节,int型占2个字节,如果一个long型数据与一个int型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足, (1)如果整型数据为正数,左边补16个0。 (2)如果整型数据为负数,左边补16个1。 (3)如果整形数据为无符号数,左边也补16个0。 如:long a=123;int b=1;计算a & b。 如:long a=123;int b=-1;计算a & b。
如:long a=123;unsigned int b=1;计算a & b。
相关推荐
### JAVA位运算详解 在Java编程中,位运算是一门精细的艺术,涉及到对整数类型的二进制位进行直接操作。这些操作不仅能够优化代码执行效率,还常用于实现特定的算法需求。本文将深入探讨Java中的位运算,包括位...
### Java中的位运算知识点 #### 一、位运算概述 位运算是计算机科学中的一个基本概念,它直接针对二进制位进行操作。在Java语言中,提供了多种位运算符来处理二进制数据,这对于优化算法性能、提高程序效率等方面...
正在学习位运算的人群
Java中的位运算符是编程语言中用于操作整数在二进制表示下的基本逻辑运算,它们在处理二进制数据时特别有用。本文主要讲解了Java中的几种位运算符及其应用。 1. **按位与运算符(&)**: - 这个运算符对两个数的每...
Java 位运算是一种高效的操作方式,它直接在二进制位层面进行操作,适用于处理整型和字符型数据。在编程中,特别是在处理底层数据、加密算法或图形算法时,位运算的应用尤为常见。Java提供了六种位运算符:右移(>>>...
本教程“Java应用开发详解”旨在为初学者提供全面的Java知识体系,覆盖了多线程、集合类、输入/输出(IO)、图形用户界面(GUI)、网络编程、异常处理、数组操作以及位运算等多个核心概念。 1. **多线程**:Java...
Java位运算知识点详解 Java位运算是Java开发中的一种基本操作,虽然使用频率不高,但是在某些场景下,巧妙的使用位运算可以大量减少运行开销。位运算的操作对象是二进制位,它可以进行按位运算和移位运算。下面将...
"Java位运算符详解" Java 位运算符是 Java 编程语言中的一种基本操作符,用于对二进制数进行操作。位运算符可以分为六种:按位与运算符 (&)、按位或运算符 (|)、异或运算符 (^)、取反运算符 (~)、左移运算符 () 和...
位运算包括按位与(&), 按位或(|), 按位异或(^), 按位取反(~), 左移(), 带符号右移(>>), 和无符号右移(>>>). 这些运算符按照一定的优先级进行运算,其中最高优先级的是位取反(~),其次是左移()和右移(>>),接着是按位...
### Java位运算符详解 在Java编程语言中,位运算符是用于操作整数类型数据在二进制级别上的特定位的工具。这些运算符直接作用于整数类型的二进制表示,对于处理低级别的计算任务非常有用。下面将详细介绍Java中的四...
【java-lang包详解】 在Java编程语言中,`java.lang`包是所有Java程序的基础,因为它包含了许多核心类和接口,这些类和接口是编写任何Java应用程序所必需的。由于这个包是自动导入的,因此程序员无需在代码中显式地...
包括C++、Java、python、web、C#、EDA等项目的源码。 【适用人群】:适用于希望学习不同技术领域的初学者或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的...
对于Java这样的面向对象语言而言,实现四则运算不仅涉及到基本的数据类型操作,还需要考虑到运算顺序以及异常处理等问题。 #### 二、Java程序结构与流程 根据提供的部分代码,可以了解到这是一个用于接收用户输入并...
Java Bug模式详解主要涵盖的是Java编程中常见的错误和陷阱,这些错误往往会导致程序运行异常或者性能下降。在软件开发过程中,理解和避免这些Bug模式对于提高代码质量和效率至关重要。本资源包含一本PDF电子书《Java...
在Java编程环境中,矩阵的基本运算是...以上就是关于Java实现矩阵基本运算的知识点详解,这些概念和操作是计算机科学,尤其是数值分析和科学计算中的基础。理解和掌握这些,能够帮助开发者解决涉及线性系统的各种问题。
### Java四则运算计算器知识点详解 #### 一、项目概述 **标题与描述解析:**“Java四则运算计算器”是一款基于Java语言开发的计算器应用,能够执行加、减、乘、除等基本算术运算,并支持混合运算,具备友好的用户...
Java Bug模式详解是一种深入理解和解决Java编程中常见错误和陷阱的方法。这些模式通常源于语言特性、API使用不当或对编程规范的误解。本篇将详细探讨一些常见的Java Bug模式,并提供预防和修复策略。 1. **空指针...
在Java中,基本数据类型byte与int之间的相互转换涉及到计算机的二进制运算、位移操作以及补码的概念。我们首先了解Java中int和byte的数据结构,然后探讨它们之间的转换方法及其背后的原理。 **基本数据类型结构:**...
### Java考试核心知识点详解 #### 一、Java标识符与编程规范 - **标识符命名规则**: - 标识符可以由字母、数字、下划线`_`、美元符号`$`组成,但不能以数字开头。 - 关键字和保留字不能作为标识符使用。 - ...