java中的异或运算符_java按位异或

java中的异或运算符_java按位异或写这篇真的有点难过,这么基础的东西,也忘记了,很怀疑工作的这两年都在干嘛,是不是路走错了。最近开始看一些算法,其中有这么一段@Testpublicvoidtest2(){inta=2;intb=3;a=a^b;b=a^b;a=a^b;System.out…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

    @Test
    public void test2() {
       int a=2;
       int b=3;
       a=a^b;
       b=a^b;
       a=a^b;
       System.out.println("a="+a+",b="+b);
    }

第一种:用真实值计算
^是异或运算符,异或的规则是转换成二进制比较,相同为0,不同为1.
一个数a与另一个数b异或的结果等于a^b,用结果( a^b)异或a,就会得到b;
上面的结果,我们用代码来验证。代码( a=a^b; b=a^b; a=a^b;)可以转换成二进制计算。

a=a^b ; ———— 01=10^11 第一步得到结果C( a^b)赋值给a,所以a此时等于01
b=a^b; ———— 10=01^11 第二步 用结果( a^b)异或b,即用C(01)异或b(11)等于10,所以此时b等于10。10转为十进制就是等于2.赋值给b,b等于2.
a=a^b; ————-11=01^10 第三步,a(01)异或b(10),等于11。转为十进制a等于3.
最后打印出来,a等于3, b等于2.

第二种:用异或规则计算。
(规则:可以移动。相同数异或等于0,任何数异或0等于本身)
第一步没变化,直接代入后面的代码进行计算。
第二步中b=a^b的 a^b转化为
a^b ^b ,其中让b^b等于0, a^0等于a。所以第二步得到结果a赋值给b。
第三步。 a=a^b中的
a^b转化 a^b ^a,让 a^a先计算等于0,b ^ 0 等于b赋值给a。

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185752.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 常量字符串过长的解决办法_未受控的格式化字符串

    常量字符串过长的解决办法_未受控的格式化字符串如果使用String str = “这是一个很长很长很长 你需要的字符串。”; 出现异常不能正常编译运行时,可以使用下方:StringBuilder sb = new StringBuilder();sb.append(“这是一个很长很长”);sb.append(“很长 你需要的字符串”);字符串太长或字符串其他情况下可使用 : StringBuilder sb = new StringBuilder()…

  • java编码native2ascii下载_native2ascii.exe

    java编码native2ascii下载_native2ascii.exenative2ascii.exe是一款好用的转码工具,主要用于字符转码和反转码,在Java开发过程中总会出现一些乱码问题或者无法正确识别读取的问题,这时候就需要进行转码,可对属性文件和其他字符编码进行转换,从而解决上述问题。需要的Java开发人员可下载!基本介绍native2ascii工具是对属性文件和其他字符编码进行相互转换。在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的…

  • 螃蟹学PHP设计模式之中介者模式

    螃蟹学PHP设计模式之中介者模式

  • void *指针赋值「建议收藏」

    p1 = p2;或p1 = (void *) p2; void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不能 pint= pvoid; */如果要将pvoid赋给其他类型指针,则需要强制类型转换如:pint= (i

  • 一个简单易用的服务器性能监控工具-easynmon

    一个简单易用的服务器性能监控工具-easynmon之前监控服务器性能的时候,一直用的是nomn,但是这个工具每次使用时必须要连接服务器并输入指令,完成后还要去服务器拿出这个结果,很不方便,直到发现了这个工具-easynmon该工具部署后可直接通过网页访问,效果如下图如何使用先从网上下载这个包,之后解压,上传到服务器的某个路径下然后cd进入该存放目录,执行chmod-R777easyNmon,给该工具赋予全权限cd进入easyNmon,执行语句nohup./easyNmon-p9000&说明:900…

  • 【大数据】最新大数据学习路线(完整详细版,含整套教程)

    【大数据】最新大数据学习路线(完整详细版,含整套教程)大数据学习路线java(Javase,javaweb)Linux(shell,高并发架构,lucene,solr)Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)机器学习(R,mahout)Storm(Storm,kafka,redis)Spark(scala,spark,sparkcore,s…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号