`
defrag_sly
  • 浏览: 129337 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

按位运算符

    博客分类:
  • java
阅读更多
按位运算符允许我们操作一个整数主数据类型中的单个“比特”,即二进制位。按位运算符会对两个自变量中对应的位执行布尔代数,并最终生成一个结果。
按位运算来源于C语言的低级操作。我们经常都要直接操纵硬件,需要频繁设置硬件寄存器内的二进制位。Java的设计初衷是嵌入电视顶置盒内,所以这种低级操作仍被保留下来了。然而,由于操作系统的进步,现在也许不必过于频繁地进行按位运算。
若两个输入位都是1,则按位AND运算符(&)在输出位里生成一个1;否则生成0。若两个输入位里至少有一个是1,则按位OR运算符(|)在输出位里生成一个1;只有在两个输入位都是0的情况下,它才会生成一个0。若两个输入位的某一个是1,但不全都是1,那么按位XOR(^,异或)在输出位里生成一个1。按位NOT(~,也叫作“非”运算符)属于一元运算符;它只对一个自变量进行操作(其他所有运算符都是二元运算符)。按位NOT生成与输入位的相反的值——若输入0,则输出1;输入1,则输出0。
按位运算符和逻辑运算符都使用了同样的字符,只是数量不同。因此,我们能方便地记忆各自的含义:由于“位”是非常“小”的,所以按位运算符仅使用了一个字符。
按位运算符可与等号(=)联合使用,以便合并运算及赋值:&=,|=和^=都是合法的(由于~是一元运算符,所以不可与=联合使用)。
我们将boolean(布尔)类型当作一种“单位”或“单比特”值对待,所以它多少有些独特的地方。我们可执行按位AND,OR和XOR,但不能执行按位NOT(大概是为了避免与逻辑NOT混淆)。对于布尔值,按位运算符具有与逻辑运算符相同的效果,只是它们不会中途“短路”。此外,针对布尔值进行的按位运算为我们新增了一个XOR逻辑运算符,它并未包括在“逻辑”运算符的列表中。在移位表达式中,我们被禁止使用布尔运算,原因将在下面解释。
分享到:
评论

相关推荐

    C语言按位运算符详解

    ### C语言按位运算符详解 #### 一、引言 在C语言中,按位运算符是一类非常重要的操作符,它们直接作用于整数的二进制表示上,通过对单个比特位进行操作来实现特定的功能。这对于低级编程、硬件控制以及优化算法等...

    MATLAB算术运算符关系运算符逻辑运算符按位集合运算符共

    按位运算符适用于整数类型的数据,它们在二进制级别上操作数组。主要包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)和左移()、右移(>>). 例如,`a & b`执行a和b的二进制位的与操作,`a | b`执行或操作,`a ^ ...

    详细介绍Python语言中的按位运算符

    按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下: 按位与 ( bitwise and of x and y )  & 举例: 5&3 = 1 解释: 101 11 相同位仅为个位1 ,故结果为 1 按位或 ( bitwise or of x and...

    JavaScript按位运算符的应用简析

    大多数语言都提供了按位运算符,按位运算符在c,c++等语言中运用广泛,而在JS,AS等脚本语言中则没有太多的应用例子,有时候,适当的使用按位运算符会取得很好的效果。下面根据自己的认知简单的谈一下js中的位操作...

    C语言逻辑运算符和位运算符总结

    位运算符用于对整数进行按位操作。这些运算符对整数的二进制表示进行操作,而非它们的实际数值。 **1. 位与 `&`** 位与运算符`&`对两个整数的二进制表示中的每一位进行比较,如果对应位均为1,则结果位也为1;否则...

    C++运算符优先级表

    按位运算符的优先级较低,包括按位与、按位异或和按位或运算符。例如: * 按位与:flags = flags & 42; * 按位异或:flags = flags ^ 42; * 按位或:flags = flags | 42; 九、逻辑运算符 逻辑运算符的优先级较低...

    shell运算符介绍和例子

    shell运算符是指在shell脚本中使用的运算符,包括算术运算符、比较运算符、逻辑运算符、按位运算符、赋值运算符等。这些运算符可以在shell脚本中使用,实现各种计算、比较和逻辑判断等操作。 算术运算符是shell...

    使用位运算符实现数的逆转

    ### 使用位运算符实现数的逆转 在计算机科学领域,位运算符被广泛应用于各种算法优化及特定场景下的数据处理中。位运算符的操作对象是整数,在内存中以二进制形式存在,通过对这些二进制位进行操作来达到高效处理...

    13.java位运算符.zip

    13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位运算符.zip13.java位...

    基于 Java封装 的位运算符,使用位运算符时更加方便

    【作品名称】:基于 Java封装 的位运算符,使用位运算符时更加方便 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: ...

    verilog的全部运算符

    2. **按位运算符**: - `~~m`:将m的每一位取反。 - `&m & n`:逐位与运算,如果两个对应位都是1,则结果位为1。 - `|m | n`:逐位或运算,如果至少一个对应位是1,则结果位为1。 - `^m ^ n`:逐位异或运算,...

    C语言关系运算符和位运算符PPT课件.pptx

    位运算符有六种,分别是按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移()和右移(>>)。位运算符用于对数字进行位操作,可以实现数字的移位、掩码操作等功能。 在编程中,关系运算符、逻辑运算符...

    R2007b 中增强的新按位运算符:此演示介绍了 R2007b 中定点工具箱中可用的新按位运算符-matlab开发

    该演示向用户介绍了 R2007b 中 Fixed Point 工具箱中提供的新的和增强的按位运算符。 嵌入式 MATLAB 模块支持这些功能,用于软件和硬件建模和代码生成(C 和 HDL)。 还包括一些使用这些按位运算符的示例应用程序...

    C提供了六种位运算运算符

    在C语言中,位运算符是用于对整型数据进行按位操作的一类运算符。这些运算符只能应用于整型数据类型,包括`char`、`short`、`int`和`long`,无论是有符号(`signed`)还是无符号(`unsigned`)。下面我们将详细介绍...

    Verilog HDL 按位逻辑运算符

    在Verilog HDL中,按位逻辑运算符是构建数字逻辑电路的关键元素,它们允许我们对位级操作进行建模,这对于创建复杂的逻辑门电路和组合逻辑设计至关重要。在本篇中,我们将深入探讨Verilog HDL中的按位逻辑运算符及其...

    PASCAL运算符优先级

    接下来是乘除及按位运算符,它们的优先级次于单目运算符: 2. `*`:表示乘法运算,用于两个数值的乘积,或者在集合上下文中表示交集。 3. `/`:表示浮点数相除,通常用于处理小数运算。 4. `div`:表示整数除法,...

    python运算符.pdf

    5. 按位运算符:`<<` `>>` `&` `^` `|` 6. 比较运算符:`==` `!=` `<` `>` `<=` `>=` 7. `is`, `is not` 8. `in`, `not in` 9. 逻辑运算符:`not` `and` `or` 了解这些运算符及其优先级有助于编写正确无误的Python...

    C语言运算符优先级表.pdf

    7. 按位运算符 * 运算符:&、^、| * 说明:对表达式进行按位与、按位异或或按位或操作 * 结合方向:左到右 8. 逻辑运算符 * 运算符:&&、|| * 说明:对表达式进行逻辑与或逻辑或操作 * 结合方向:左到右 9. ...

Global site tag (gtag.js) - Google Analytics