返回顶部
首页 > 资讯 > 后端开发 > JAVA >JAVA异或运算
  • 570
分享到

JAVA异或运算

java开发语言 2023-09-27 14:09:06 570人浏览 泡泡鱼
摘要

一、异或运算: 异或运算(^):是一种位运算(二进制),位相同为0,位不同为1。 既然这样,那当一个数对自身进行异或运算时,那么所有的数位都为0了,结果不就等于0了?测试一下: int a=2; System.

一、异或运算:

异或运算(^):是一种位运算(二进制),位相同为0,位不同为1。

既然这样,那当一个数对自身进行异或运算时,那么所有的数位都为0了,结果不就等于0了?测试一下:

        int a=2;        System.out.println(a^a); //0

果然为0,那么可以得出结论:x^x=0

然后进行原理测试:

        int n=8;                //1000        int m=0;                //0000        System.out.println(n^m);//8=1000

由举例可以看出,对数值的二进制进行比较后,发现只有第一位不同,故值为8,转换为二进制为1000.针对以上举例可以推出,任何数与0进行异或运算,得到的都是自己本身。

接下来对大于两个数以上的进行异或运算。直接举例:

        int n1=4;  //0100        int n2=5;  //0101        int n3=6;  //0110        int n4=7;  //0111        System.out.println(n1^(n2^n3)^n4);  //0000        System.out.println(n1^(n3^n2)^n4);  //0000        System.out.println(n1^(n4^n3)^n2);  //0000

可以看出,位置并不是决定结果的要数。(有点像以前学的交换律)

二、异或的简单运用

当我们定义变量的时候,变量在使用的时候回占用内存,那么我们是不是可以通过减少内存的个数来对程序进行内存简单优化呢?这个时候异或运算就有一个自己的解决方案:

例如现在有一题:在不适用第三个变量的情况下,怎么将两个变量的值进行互换?答案如下:

        int n=520;        int m=1314;        n=n^m;        m=n^m;        n=n^m;        System.out.println("n:"+n); //1314        System.out.println("m:"+m); //520

佛曰:“何故?”

我答:“第一步异或将n^m的值赋值给了n,这个时候在进行第二步异或,将n=n^m,换算进去:得到m=n^m^m,这个时候,因为异或运算对位置并没有影响,故先计算“m^m=0”,随后,化简后得到m=n^0=n,这个时候就将n的值赋值给了m。

然后看第三步异或运算:n=n^m;此时右边的n=n^m,m=n,故可以得到:n=n^m^n,按照上一步的步骤,可以得到n=m,即完成了题目要求的值的互换。”

佛曰:“好!”

本次的介绍就到这里咯,欢迎大家一起探讨更加深入的用法。如有错误,欢迎大家指正,共勉!

来源地址:https://blog.csdn.net/m0_71566920/article/details/131463329

--结束END--

本文标题: JAVA异或运算

本文链接: https://lsjlt.com/news/419799.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JAVA异或运算
    一、异或运算: 异或运算(^):是一种位运算(二进制),位相同为0,位不同为1。 既然这样,那当一个数对自身进行异或运算时,那么所有的数位都为0了,结果不就等于0了?测试一下: int a=2; System....
    99+
    2023-09-27
    java 开发语言
  • Java-异或运算详解
    基本概念 异或运算,符号为XOR或者^,是二进制的运算,运算法则为相同为0,不同为1,我记得时候反正总会忘(和同或记反),所以这里直接把异或理解为"不进位的二进制相加".举个栗子: 1000111 和 1110001 异或 按照不进位...
    99+
    2023-10-08
    数据结构 java Powered by 金山文档
  • python 异或运算
    交换a,b两值的方法:                     a = a^b;                     b = a^b;                     a = a^b; b = a ^ b =...
    99+
    2023-01-31
    python
  • 深入理解java中的异或运算符
    Java中的位运算符中有一个叫做异或的运算符,符号为(^)或者 Xor异或8个字总结 相同出0 不同出1int a=1; int b=1; System.out.println(a^b);这里则输出 0int a=12; int b=0; ...
    99+
    2016-04-08
    java入门 java 异或 运算符
  • 探索Golang中的异或运算符
    Golang异或符是什么?来了解一下吧! 在Golang中,异或符号(^)是一种位运算符,用来对二进制数进行按位异或运算。异或运算符的运算规则是:对应的二进制位相同取0,不同取1。在Golang中,它不仅可以...
    99+
    2024-01-29
    Golang 了解 异或符
  • js异或运算符^小技巧分享
    目录js异或运算符^小技巧js中的位运算符(按位与、按位或、按位异或)使用总结js异或运算符^小技巧 这个运算符主要是在位运算的时候使用,但是在普通的数也能使用,且有一个转换过程,即...
    99+
    2023-05-17
    js异或运算符 js运算符 异或运算符^
  • python异或运算符的用途有哪些
    Python中的异或运算符(^)主要用于执行位运算。它可以在比特级别上执行异或操作,适用于处理数字中的比特位。 以下是异或运算符在P...
    99+
    2024-04-02
  • python异或运算符使用要注意什么
    在使用Python中的异或运算符(^)时,需要注意以下几点: 异或运算符用来对两个数的二进制进行按位异或操作,即对应位上的数字相同...
    99+
    2024-04-02
  • python异或运算符的使用方法是什么
    ^ 是 Python 中的异或运算符,用于对两个数字进行按位异或操作。其使用方法如下: # 对两个数字进行按位异或操作 result...
    99+
    2024-04-02
  • 解析Golang异或运算符的用法及需要注意的事项
    Golang异或符的用法及注意事项解析 引言:Golang是一门开发效率高、规范性强的编程语言。在Golang中,位运算符是一种强大的工具,能够有效地处理二进制数据。在位运算符中,异或符号(^)在处理二进制数...
    99+
    2024-01-29
    Golang 注意事项 异或符
  • 探索Golang中的异或运算符的使用方法!迎接学习吧!
    Golang中的异或符怎么使用?一起学习吧! 异或(XOR)操作是一种常见的二进制运算符,它在计算机科学中经常用于加密和校验等方面。在Golang中,异或操作符由符号^表示,可以用于进行位级别的操作。本文将介...
    99+
    2024-01-29
  • java运算符中的“-
    “--”运算示例如下:int i = 1; int j1 = i--; // 先将i的原始值(1)赋值给变量j1(1),然后i变量的值减1 int j1 = --i; // 先将i变量的值减1,然后将i的当前值(0)赋值给变量j1(0)推荐...
    99+
    2021-06-15
    java入门 java 运算符 --
  • java中取模运算
    在Java中,取模运算使用百分号(%)符号表示。它返回两个操作数相除后的余数。下面是一些示例: 正数取模:如果被除数为正数,取模运算的结果也为正数。例如: int a = 10; int b = 3; int result = a %...
    99+
    2023-08-31
    java 开发语言
  • Java中的运算符
      Java是一种强大的编程语言,其中运算符是编写代码时不可避免的一部分。运算符允许程序进行各种算术、逻辑和比较操作,以及数学函数。 1. 算术运算符 算术运算符用于执行基本的算术运算,如加减乘除。下表列出了常见的算术运算符: 运算符描述+...
    99+
    2023-09-05
    java 开发语言
  • Java 三目运算符
    Java是一种广泛使用的编程语言,具有强大的功能和丰富的语法结构,其中三目运算符是Java语言中的一个重要概念。在本篇博客中,我们将深入探讨Java中的三目运算符,包括其语法、用法和示例。 一、什么是...
    99+
    2023-09-01
    java 开发语言
  • Java 运算符详情
    目录1、算术运算符2、关系运算符3、逻辑运算符4、位运算符5、赋值运算符6、条件运算符7、instanceof 运算符Java 中的运算符与 C 语言基本一致。 1、算术运算符 ...
    99+
    2024-04-02
  • Java怎么用位运算实现加减运算
    这篇文章主要讲解了“Java怎么用位运算实现加减运算”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么用位运算实现加减运算”吧!思路分析先分析如何用位运算实现加法运算。示例假设a=2...
    99+
    2023-07-04
  • Java中的位运算与移位运算详解
    目录位运算按位“与” &按位“或” |异或 ^移位运算左移 <<右移 >>无符号右移 >>>总结位运算 按位“与” & ...
    99+
    2024-04-02
  • Java 中的位运算与移位运算详解
    位运算和移位运算是 Java 中常用的运算符,用于对数字的位进行操作。下面是位运算与移位运算的详细解释:1. 位运算符:- 按位与(...
    99+
    2023-08-14
    Java
  • Java怎么用位运算实现乘法运算
    这篇文章主要介绍了Java怎么用位运算实现乘法运算的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么用位运算实现乘法运算文章都会有所收获,下面我们一起来看看吧。十进制相乘例如,26 * 15,在进行乘法...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作