java中的异或非运算

article/2025/10/6 8:10:16

一、java 与或非 操作

与(&)、非(~)、或(|)、异或(^)

1.与运算符
与运算符用符号“&”表示,其使用规律如下:
两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。
public class data13
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 与的结果是:"+(a&b));
}
}
运行结果
a 和b 与的结果是:128
下面分析这个程序:
“a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。


2.或运算符
或运算符用符号“|”表示,其运算规律如下:
两个位只要有一个为1,那么结果就是1,否则就为0,下面看一个简单的例子。
public class data14
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 或的结果是:"+(a|b));
}
}
运行结果
a 和b 或的结果是:129
下面分析这个程序段:
a 的值是129,转换成二进制就是10000001,而b 的值是128,转换成二进制就是10000000,根据或运算符的运算规律,两个位满足其中有一个或两个是1,结果就为1,可以知道结果就是10000001,即129。


3.非运算符
非运算符用符号“~”表示,其运算规律如下:

如果位为0,结果是1,如果位为1,结果是0,下面看一个简单例子。
public class data15
{
public static void main(String[] args)
{
int a=2;
System.out.println("a 非的结果是:"+(~a));
}
}


4.异或运算符
异或运算符是用符号“^”表示的,其运算规律是:
两个操作数的位中,相同则结果为0,不同则结果为1。下面看一个简单的例子。
public class data16
{
public static void main(String[] args)
{
int a=15;
int b=2;
System.out.println("a 与 b 异或的结果是:"+(a^b));
}
}
运行结果
a 与 b 异或的结果是:13
分析上面的程序段:a 的值是15,转换成二进制为1111,而b 的值是2,转换成二进制为0010,根据异或的运算规律,可以得出其结果为1101 即13。

 

二、短路 条件操作

当使用逻辑操作符时,我们会遇到一种“短路”现象。即一旦能够明确无误地确定整个表达式的值,就不会再计算表达式剩余的部分了。因此,整个逻辑表达式靠后的部分有可能不会被运算。

System.out.println(false||true);//输出true,||不存在短路现象,表达式中有任意一部分为true就返回true,所以||逻辑操作符必须要将整个表达式运算完毕才能得出结果。

System.out.println(false && true);//输出false。表达式中有任意一部分为false,整个表达式就返回false。不必将整个表达式运算完毕。

Java代码   收藏代码
  1. static boolean test1(int val){  
  2.         System.out.println("test1(" + val + ")");  
  3.         System.out.println("result:" + (val<1));  
  4.         return val<1;  
  5.     }  
  6.     static boolean test2(int val){  
  7.         System.out.println("test2(" + val + ")");  
  8.         System.out.println("result:" + (val<2));  
  9.         return val<2;  
  10.     }  
  11.     static boolean test3(int val){  
  12.         System.out.println("test3(" + val + ")");  
  13.         System.out.println("result:" + (val<3));  
  14.         return val<3;  
  15.     }  
  16.     public static void main(String[] args) {  
  17.         boolean b = test1(0) && test2(2) && test3(2);  
  18.         System.out.println("expression is " + b);  
  19.     } /**OutPut 
  20.         * test1(0) 
  21.         * result:true 
  22.         * test2(2) 
  23.         * result:false 
  24.         * expression is false 
  25.         */  

 第一个测试生成结果为true,所以表达式会继续下去。然而第二个测试产生了一个false结果。由于这意味着整个表达式肯定为false,所以没有必要继续计算剩余的表达式,那样做只是浪费。“短路”一词的由来正源于此。合理的短路设计会使程序性能获得潜在的提升。


http://chatgpt.dhexx.cn/article/WVdAQhE8.shtml

相关文章

java运算符异或(^)的用法

Java中的位运算符中有一个叫做异或的运算符&#xff0c;符号为&#xff08;^&#xff09;,其主要是对两个操作数进行位的异或运算&#xff0c;相同取0&#xff0c;相反取1。即两操作数相同时&#xff0c;互相抵消。 试例&#xff1a;13 与15 两个整数的异或 public static void…

一文搞懂 位运算 异或(Java实现)

提起异或想必很多小伙伴们既熟悉又陌生&#xff0c;熟悉是因为好像在离散数学或者学某个编程语言 时听过这个东西&#xff0c;而陌生呢&#xff0c;则是因为自己平时并没有用过&#xff0c;以至于当在某个场景 &#xff08;我猜是在看 题解或者某篇博客时&#xff09; 看到这…

java中异或运算的应用

java中异或运算(^)的应用 异或运算法则 1. a ^ b b ^ a   2. a ^ b ^ c a ^ (b ^ c) (a ^ b) ^ c;   3. d a ^ b ^ c 可以推出 a d ^ b ^ c.   4. a ^ b ^ a b. 异或运算 1、异或是一个数学运算符。应用于逻辑运算。   2、例如&#xff1a;真异或假的结果是…

java的异或运算

一、题目 输入两个数&#xff0c;交换后输出 二、解题思路 一开始学习的语言是c语言&#xff0c;里面非常有特色的是指针&#xff0c;通过传引用可以直接交换两个数。但java无法达成这种操作&#xff0c;翻阅资料找到了一种有趣的解法&#xff1a;异或! 异或原理&#xff1a; …

java基础-异或运算

小伙伴们&#xff0c;你们好呀&#xff01;我是老寇&#xff01; 异或运算主要用于判断两个值是否一样 异或运算的3个性质&#xff1a; 1.任何数和0进行异或运算&#xff0c;结果是原来的数&#xff0c;即b⊕0b 2.任何数和其自身进行异或运算&#xff0c;结果为0&#xff0c;即…

Java中的异或运算符^

Testpublic void test2() {int a2;int b3;aa^b;ba^b;aa^b;System.out.println("a"a",b"b);}第一种&#xff1a;用真实值计算 ^是异或运算符&#xff0c;异或的规则是转换成二进制比较&#xff0c;相同为0&#xff0c;不同为1. 一个数a与另一个数b异或的结果…

java中的异或运算

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是Rockey&#xff0c;不知名企业的不知名Java开发工程师 &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;联系方式&#xff1a;he18339193956&…

HTTP Status 505 – HTTP Version Not Supported

这个大部分的原因不是httpserver不支持&#xff0c;而是请求url里有空格&#xff0c;检查有空格UTF-8编码再传 比如&#xff1a;远程调用服务端地址有空格 去除空格

HTTP Status 500 解决办法

HTTP Status 500 解决办法 在Java web 论坛系统中也遇见了这个问题&#xff0c;在这里就提供一个解决的办法。 图中显示 int idInteger.parseInt(request.getParameter("id")); 这一段有错误。这里是因为id的值不能为null&#xff0c;不然就会出现这个错误 修改如…

Tomcat HTTP Status 404 tomcat 404问题解决

今天初次使用tomcat的时候&#xff0c;用浏览器访问总是不成功。经过一番周折总算成功了&#xff0c;虽然这个知识点不是很难&#xff0c;但还是写篇博客&#xff0c;希望能帮助那些初学者。(注&#xff1a;笔者用的是&#xff1a;tomcat 7) 前提&#xff1a;你的tomcat可以访…

svn提交报错Unexpected HTTP status 413 'Request Entity Too Large' on

问题原因&#xff1a;nginx的client_max_body_size设置过小&#xff0c;默认 1M&#xff0c;如果请求的正文数据大于client_max_body_size&#xff0c;HTTP协议会报错 413 Request Entity Too Large。 解决方案&#xff1a;把这个值调大就可以了。

HTTP Status 404 - 解决办法

HTTP Status 404 - 解决办法 今天&#xff0c;我在从仓库导入web项目的时候出现了一个问题&#xff1a; 首先&#xff0c;我想的是为什么会出现&#xff0c;这样的问题&#xff0c;然后我对这个问题进行了描述&#xff0c;准备在网上找找解决方法&#xff0c;大多数给出的答案…

HTTP Status 500 – Internal Server Error

第一次碰到500错误,标题很明显,内部服务器错误,解决此类问题重点在于会看错误提示信息,之前一直没有这个意识,看到报错直接百度,其实我们稍微注意一下信息提示就能解决大部分问题,上图: 看下第二条Message,标注了/iframe/head.jsp页面,后边括号表明为第一行第二列(个…

HTTP Status 400的排错步骤 与HTTP Status 404的排错步骤

一、前言&#xff1a;一个问题有暗含两个错误&#xff1a;400和404 二、HTTP Status 400 这是在跳转修改的界面出现&#xff0c;跳不过去说明路径相关有问题 上面 400的解决了&#xff0c;然后运行404又出来了 三、HTTP Status 404 看到资源问题&#xff0c;就去看下导包没有&a…

SpringBoot 设置HTTP 响应状态码 (HTTP Status Code)

SpringBoot 设置HTTP 响应状态码 (HTTP Status Code) HTTP请求响应的内容有很多&#xff0c;包括Body、Cookies、Headers和Status。 我们最常用的是Body、其次Headers、Cookies。而HTTP Status Code关注得最少。 HTTP Status Code 分类分类描述1**信息&#xff0c;服务器收…

HTTP Status 500 - null

出现这类问题&#xff1a;The server encountered an internal error that prevented it from fulfilling this request. java.lang.Integer.parseInt(Integer.java:542) HTTP Status 500 - null 500错误是首先考虑java代码的问题&#xff0c;如果不是java代码的问题的话&#…

Http Status 500

这个错误一般都是空指针异常 错误信息页面一般都提示了错误的页面和行数 我的SearchCondition java:25是这样的 我的name值是空的&#xff0c;然后后面用到了name,所以报了空指针异常&#xff1b; 像大型的项目&#xff0c;可以采取以下的措施&#xff1a; 一、通过System.…

HTTP Status 500 - Internal Server Error

Http请求状态码 200&#xff1a;正常404&#xff1a;资源找不到400&#xff1a;请求类型不匹配500&#xff1a;后台程序抛出异常游览器抛出的异常其实跟最基础的JAVA程序抛出异常是相似的只是异常提醒出现的位置不同&#xff0c;外加给了异常类型的数字&#xff08;200&#xf…

HTTP Status Codes/HTTP状态码

1.应用场景 帮助快速查询http code, 以及对应的含义&#xff0c;帮助定位问题。 2.学习/操作 推荐查阅 HTTP Status Codes Glossary - WebFX STATUS_CODES { 100: Continue, // 持续中 101: Switching Protocols, // 转换协议 102: Processing, // 进行中 200: OK, …

华为eNSP下的ssh配置实验

配置两台路由器&#xff08;AR4为服务器&#xff0c;AR3为SSH客户端&#xff09; 修改R3为AR3&#xff0c;修改R4为AR4&#xff0c;AR3地址192.168.1.1&#xff0c;AR4地址为192.168.1.2 发现能互通 配置aaa模式用户名加密码 设置权限等级 创立RSA的ssh秘钥 只允许ssh进…