`
supportopensource
  • 浏览: 521813 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

位运算符

F# 
阅读更多
位运算符除按位运算符中的按位与和按位或运算符外,其他的只能用于整数间的运算。位运算符是针对整数在内存中存储的二进制数据流中的位进行的操作。例如表达式“2<<1”表示将整数2在内存中的二进制数据流向左移动一位。运算过程如下:


Java语言中的位运算符又分为按位运算符和移位运算符,下面分别进行介绍。
1、按位运算符
按位运算符是将整数的二进制数据流中的每个位进行运算,该运算只包括以下4种:按位与运算、按位或运算、按位异或运算和按位取反运算,它们所对应的运算符及运算规则如下表1所示:

按位与运算,只有两个二进制位数都为1时结果才为1;按位或运算,只要有一个二进制位数为1则结果为1;按位异或运算,两个二进制位数相同(同时为0或1)时结果为0,否则为1;按位取反运算符为一元运算符,取反运算是将二进制中的0修改为1,1修改为0。
下面的代码显示了按位运算符的用法:
int a = 5 & -4;//整数5与-4的按位与运算,结果为:4
int b = 3 | 6;//整数3与6的按位或运算,结果为:7
int c = 10 ^ 3;//整数10与3的按位异或运算,结果为:9
int d = ~(-14);//整数-14的按位取反运算,结果为:13
代码中各表达式的运算过程分别如图1~4所示:



在Java中,按位运算符可以与赋值运算符“=”组合为复合赋值运算符,例如:
int num = 5;
num &= 6;//等价于:num = num & 6;
System.out.println(num);//运行结果为:4
当按位与和按位或运算符两边的操作元为布尔数据时,则被视为逻辑运算符。
例如以下的表达式是合法的:
int a = 3;
int b = 9;
System.out.println((a<b)&((a+4)>b));//输出结果:false
System.out.println((a<b)|((a+4)>b));//输出结果:true
2、移位运算符
移位运算符同样也是对整数的二进制中的位进行操作。Java中的移位运算符包括以下3种:左移位运算、有符号整数的右移位运算和无符号整数的右移位运算。它们所对应的运算符及运算规则如下表2所示:

通常整数n的取值是一个正数,如果为0则结果仍为m;如果为负数则等价于m/2d,其中d的取值为整数n类型的最小值的绝对值 – 整数n的绝对值。例如计算表达式“17>>-2 147 483 645”的结果,因为整数-2 147 483 645为int型,最小值为-2 147 483 648,所以m/2d中的d取值为2 147 483 648 – 2 147 483 645 = 3,所以表达式“17>>-2 147 483 648”等价于“17>>3”,最终结果为2。
下面的代码显示了移位运算符的用法:
int a = -2 <<3;            //a的值为:-16,等价于(-2)*23
int b = 3 << -2147483646;  //b的值为:12,等价于3*2147483646
int c = 15 >> 2;           //c的值为:3,等价于15/22%32
int d = -31>>3;            //d的值为:-4,等价于(-32)/23%32
int e = 4>>>2;              //e的值为:1,等价于4/22%32
int f = -5>>>1;            //f的值为:2147483645
代码中各表达式的运算符过程分别如图5~10所示:


  • 大小: 35 KB
  • 大小: 77.3 KB
  • 大小: 68.5 KB
  • 大小: 67.3 KB
  • 大小: 65.3 KB
  • 大小: 66.1 KB
  • 大小: 117.3 KB
  • 大小: 40.3 KB
分享到:
评论

相关推荐

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

    通过上述介绍可以看出,逻辑运算符和位运算符在C语言中扮演着非常重要的角色。逻辑运算符用于组合条件表达式,而位运算符则用于对整数进行位级别的操作。掌握这两种运算符的用法有助于编写更高效、更灵活的程序。

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

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

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

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

    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位...

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

    在C语言的编程世界里,关系运算符和位运算符是两个基础且核心的概念,它们分别在逻辑判断和数值底层操作方面发挥着不可替代的作用。为了帮助初学者更好地理解和应用这些运算符,一份详细的PPT课件尤为重要。本篇内容...

    Java中位运算符.pdf

    Java中位运算符 Java 中位运算符概述 Java 中位运算符是用于对二进制位进行操作的运算符。这些运算符可以对整型和字符型数据进行操作,操作结果为一个整数。位运算符可以分为一元运算符和二元运算符两种。 位...

    C语言位运算符在程序中的作用

    ### C语言位运算符在程序中的作用 C语言是一种广泛使用的高级编程语言,因其高效性和灵活性而备受青睐,尤其是在系统编程、嵌入式系统开发等领域。位运算符是C语言中一种重要的运算符类型,主要用于操作整数类型的...

    位运算符.docx

    位运算符在计算机科学和编程中扮演着重要的角色,尤其是在处理底层数据和高效计算时。这些运算符直接操作整型或字符型数据的二进制位,而不是它们的数值表示。位运算符主要分为两大类:位逻辑运算符和位移位运算符。...

    位运算符.pdf

    位运算符是编程语言中处理整型或字符型数据的一种特殊运算方式,它们直接操作数据的二进制位,而不是其数值表示。在计算机科学,尤其是计算机编程领域,位运算符有着广泛的应用,因为它们可以高效地进行底层的位级...

    java位运算符之&AND操作视频

    Java语言中的位运算符是编程中的一个重要组成部分,尤其是在处理二进制数据或者进行高效计算时。在Java中,"&"符号被用作位AND运算符,它在二进制级别上进行操作,对两个操作数的每一位进行比较,并返回一个新值。这...

    C语言按位运算符详解

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

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

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

    JS运算符—位运算符[借鉴].pdf

    JavaScript中的位运算符是用于操作数字的二进制表示,它们在处理整数时非常有用,尤其是在优化代码或进行低级别的数据操作时。在JavaScript中,位运算符主要有以下几种: 1. 按位与运算符(&) - 位与运算符会对两...

    C++位运算符.pdf

    C++位运算符是编程中处理二进制数据的重要工具,它们主要应用于底层系统编程、内存管理和硬件交互等场景。位运算符包括按位与(&),按位或(|),按位非(~),按位异或(^),左移()和右移(&gt;&gt;)。这些运算符都是针对整型...

    位运算符,位运算,位段

    位运算符允许程序员直接操作数据的二进制位,从而实现高效的数据处理和计算。本文将详细介绍位运算符,位运算,以及位段的概念。 首先,位运算符包括按位与(&)、按位或(|)、按位异或(^)、按位非(~)以及移位...

    Java位运算符详解.docx

    "Java位运算符详解" Java 位运算符是 Java 编程语言中的一种基本操作符,用于对二进制数进行操作。位运算符可以分为六种:按位与运算符 (&)、按位或运算符 (|)、异或运算符 (^)、取反运算符 (~)、左移运算符 () 和...

    javascript运算符——位运算符全面介绍.docx

    ### JavaScript运算符——位运算符全面介绍 #### 一、引言 JavaScript作为一种广泛使用的编程语言,在前端开发、后端开发乃至数据科学等领域都有着举足轻重的地位。位运算符作为JavaScript运算符的一种,虽然不如...

    C语言关系运算符和位运算符PPT学习教案.pptx

    在C语言学习过程中,理解并熟练运用关系运算符和位运算符对于编写高效准确的代码至关重要。关系运算符用于比较,而位运算符则直接作用于二进制位,两者虽属于不同的范畴,但都是构成复杂表达式和控制结构的基础。 ...

    java位运算符.pdf

    Java中的位运算符是编程语言中一种强大的工具,它们直接操作整数类型的二进制位,包括`long`, `int`, `short`, `char`, 和 `byte`。这些运算符可以用于实现高效的位级操作,比如设置、清除、翻转和测试特定的位。 ...

    第02章 Java编程基础 08 位运算符与变量交换

    在Java编程语言中,位运算符是用于对整数类型(byte、short、int、long)的二进制表示进行操作的特殊运算符。这些运算符直接作用于数据的二进制位,提供了高效和底层的数据处理能力。本章将深入讲解位运算符及其在...

Global site tag (gtag.js) - Google Analytics