按位运算符允许我们操作一个整数主数据类型中的单个“比特”,即二进制位。按位运算符会对两个自变量中对应的位执行布尔代数,并最终生成一个结果。
按位运算来源于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逻辑运算符,它并未包括在“逻辑”运算符的列表中。在移位表达式中,我们被禁止使用布尔运算,原因将在下面解释。
java的按位运算符
时间: 2025-01-01 15:40:10
java的按位运算符的相关文章
Java中的位运算符、移位运算详细介绍_java
一.位运算 Java中有4个位运算,它们的运算规则如下: (1)按位与 (&) :两位全为1,结果为1,否则为0: (2)按位或 (|) :两位有一个为1,结果为1,否则为0: (3)按位取反(~):0 变 1, 1变0: (4)按位异或(^):两位,如果相同,结果为0:如果不同,结果为1: 注意: (1)位运算中的 符号位(最高位)也跟着变; (2)位运算符与逻辑运算符(逻辑与&&.逻辑或||.逻辑非! )有点相似.但是,逻辑运算符只能操作boolean变量 (也就是左右两边的值
Java编程那些事儿25—位运算符
4.5 二进制运算符 由于计算机内部的数据都以二进制的形式存在,所以在Java语言中提供了直接操作二进制的运算符,这就是下面要讲解的位运算符和移位运算符. 使用二进制的运算符,可以直接在二进制的基础上对数字进行操作,执行的效率比一般的数学运算符高的多,该类运算符大量适用于网络编程.硬件编程等领域. 二进制运算符在数学上的意义比较有限. 在Java代码中,直接书写和输出的数值默认是十进制,Java代码中无法直接书写二进制数值,但是可以书写八进制和十六进制数字,八进制以数字0开头,例如016,十六进
Java核心技术卷I基础知识3.5.7 位运算符
3.5.7 位运算符 处理整型类型时,可以直接对组成整型数值的各个位完成操作.这意味着可以使用掩码技术得到整数中的各个位.位运算符包括: 这些运算符按位模式处理.例如,如果n是一个整数变量,而且用二进制表示的n从右边数第4位为1,则 会返回1,否则返回0.利用&并结合使用适当的2的幂,可以把其他位掩掉,而只保留其中的某一位. 注释:应用在布尔值上时,&和|运算符也会得到一个布尔值.这些运算符与&&和||运算符很类似,不过&和|运算符不采用&quo
Java语言入门教程(八):Java语言中的运算符与流程控制
不论使用何种语言,最终都是为了实现业务逻辑.在面向对象的编程语言中 ,业务逻辑都在方法中实现.因此,对于初学者来说,了解完成Java类方法体的 基本知识点是非常必要的.本文中,将介绍编写方法体必须了解的两个方面:运 算符,流程控制. Java中的运算符根据其功能,可以分成4类.首先需要注意的是,Java中的运 算符是不能重载的.下面分别对4类运算符进行介绍. 1. 算术运算符:+,-,*,/,%,++,-- 算术运算符是对基本数据类型进行运算的操作符,其中容易混淆的是/表示除 ,而%表示取余.另
java中的移位运算符心得总结_java
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >> 1,相当于num除以2 >>> : 无符号右移,忽略符号位,空位都以0补齐 下面来看看这些移位运算都是怎样使用的 复制代码 代码如下: /** * */package com.b510.test; /** * @author Jone Hongten * @creat
Java基础-03.总结运算符、键盘录入、if语句
你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:运算符(掌握)(1)算术运算符A:+,-,*,/,%,++,--B:+的用法a:加法b:正号c:字符串连接符C:/和%的区别数据做除法操作的时候,/取得是商,%取得是余数5/3=15%3=2-5%3=-2;-5
Java语法基础之运算符学习笔记分享_java
一.运算符 运算符包括下面几种: 算术运算符赋值运算符比较运算符逻辑运算符位运算符三目运算符 最不常用的是位运算符,但也是最接近计算机底层的. 1.算术运算符 (1)+的几种用法:加法.正数.字符串连接符 (2)除法的时候要注意一个问题:整数相除,只能得到整数.要想得到小数,可以将数据自身*1.0,即将数据自身先转换为浮点型. 2.赋值运算符 符号 = += -= *= /= %= 注:=为基本的赋值运算符,其他的为扩展的赋值运算符 面试题: (1)short s=1, s = s+1; (2)
JAVA语法基础之运算符
运算符是一种特殊符号,用以表示数据的运算.赋值和比较.运算符共分为算术运算符.赋值运算符.比较运算符.逻辑运算符.移位运算符. 一.算术运算符 算术运算符的功能是做各种算术运算,其操作数可以是字符型.整型或浮点型数据.Java中的算术运算符又可以分为两种:单目运算符和双目运算符.单目运算符的操作数只有一个,只对唯一的操作数进行处理.双目运算符操作数有两个,运算过程中由两个操作数参与完成.算术运算符见下表: 运算符 运算 范例 结果 类型 + 正号 +3 3 单目运算符 - 负号 b=4;-b;
java中的移位运算符:<;<;,>;>;,>;>;>;总结(转)
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >> 1,相当于num除以2 >>> : 无符号右移,忽略符号位,空位都以0补齐 下面来看看这些移位运算都是怎样使用的 public class MoveOperation { public static void main(String[] args) { int numb