iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >深入理解java中的异或运算符
  • 390
分享到

深入理解java中的异或运算符

java入门java异或运算符 2016-04-08 01:04:46 390人浏览 猪猪侠
摘要

Java中的位运算符中有一个叫做异或的运算符,符号为(^)或者 Xor异或8个字总结 相同出0 不同出1int a=1; int b=1; System.out.println(a^b);这里则输出 0int a=12; int b=0;

Java中的位运算符中有一个叫做异或的运算符,符号为(^)或者 Xor

异或8个字总结 相同出0 不同出1

int a=1;
int b=1;
System.out.println(a^b);

这里则输出 0

int a=12;
int b=0;
System.out.println(a^b);

这里则输出 12

小结: 相同的两个数会输出0既false ,另一个数为0 则输出它本身,下面为大家演示两个不同的数字

相关视频教程推荐:java在线教程

运算规则

其运算规则是:在两个二进制操作数的相同位中

如:a=7; b=4;

a=0111; b=0100; (因为int是占据32位的,前面的位数都为0 ,所只展示后4位)

a^b=?

92cb4bcb254420b8ff1fd109d548c4b.png

得出 a^b =3

下面为大家详细讲解在不使用第三方的情况下交换两个属性中的值

我们要实现的是a=4; b=7;

公式为 a=a^b;
b=a^b;
a=a^b;
第一步分析:

94e2cfc3b42d8756fe075c6719e1668.png

第一步结束后值为: a=3; b=7;

第二步:b=a^b;

41c82ab67f95c7da4c9037ed8fddc70.png

第二步结束后的值:a=3; b=4;

第三步:a=a^b;

2408e33b4f00a161540b8be1a25e6b2.png

第三步结束后的值:a=7; b=4;

异或运算有三个特征,一个是0与一个数做异或操作还是本身,本身与本身做异或操作为0,异或操作还满足交换率。
利用a^a=0的特点实现这个功能,在一个数组中找出出现次数为奇数的,也可理解为出现一次的;

这里直接上代码;

private static void DDD() {
		int a[] = { 22, 38, 38,5, 22, 4, 4, 11, 11 };
		int t = 0;
		for (int i = 0; i < a.length; i++) {
			t ^= a[i];
		}
		System.out.println(t);
	}

这里将会直接输出 5

下面是一些异或的基本知识,有兴趣的可研究一下;

a ^ b = b ^ a

a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;

d = a ^ b ^ c 可以推出 a = d ^ b ^ c.

a ^ b ^ a = b.

更多相关文章教程推荐:java入门学习

--结束END--

本文标题: 深入理解java中的异或运算符

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入理解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 异或 运算符
  • 深入理解Python中的*重复运算符
    在python中有个特殊的符号“*”,可以用做数值运算的乘法算子,也是用作对象的重复算子,但在作为重复算子使用时一定要注意 注意的是:*重复出来的各对象具有同一个id,也就是指向在内存中同一块地址,在对各...
    99+
    2022-06-05
    运算符 Python
  • java数据类型和运算符的深入讲解
    一.整型变量 1.基本格式 int 变量名 = 初始值; 代码示例: public class CSDN { public static void main(String[]...
    99+
    2022-11-11
  • 深入了解JAVA数据类型与运算符
    目录前言变量与类型变量的分类按声明的位置来分类:按数据类型划分:变量的命名规则硬性指标:软性指标:Java类型汇总:运算符总结前言 Java的数据类型与运算符很多与C语言大致相同,但...
    99+
    2022-11-12
  • 深入了解Python中运算符函数的使用
    Python 在“运算符”模块下为许多数学、逻辑、关系、按位等操作预定义了函数。本文介绍了一些基本功能。 1. add(a, b)  :- 这个函数...
    99+
    2022-11-11
  • 深入解析Python中的变量和赋值运算符
    Python 变量类型 变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,...
    99+
    2022-06-04
    赋值 变量 运算符
  • 深入理解Java中的java.lang.ArithmeticException异常
    引言 在Java中,异常处理是一种重要的编程机制。异常是指在程序执行过程中发生的错误或异常情况,它打破了正常的程序流程,需要进行相应的处理。Java提供了丰富的异常类和异常处理语法,使开发人员能够更好...
    99+
    2023-10-18
    java 开发语言
  • 详解Java中的运算符
    本篇文章为大家展示了详解Java中的运算符,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的运算符,分为四类:算数运算符、关系运算符、逻辑运算符、位运算符。算数运算符(9):+ - * / %...
    99+
    2023-05-31
    java 运算符 ava
  • 深入理解java的异常情况
    目录什么是异常?异常的存在形式Java异常体系异常的分类运行时异常编译时异常错误 Error编译时异常和运行时异常的区别常见的异常防御式编程Java处理异常的语法异常抛出—throw...
    99+
    2022-11-12
  • Java中的位运算符全解
    目录1. &(按位与运算符)2. |(按位或运算符)3. ^(异或运算符)4. <<(左移运算符)5. >> (右移移运算符)6. ~(取反运算符)7...
    99+
    2022-11-13
  • 深入理解.NET中的异步
    目录一、前言二、初看异步三、多线程编程四、异步编程五、Task (ValueTask)六、Task.Run七、自己封装异步逻辑八、同步方式调用异步代码九、void async 是什么...
    99+
    2022-11-12
  • java中三目元算符的运算原理
    格式:数据类型 变量名 = 布尔类型表达式?结果1:结果2运算原理:布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。相关视频教程推荐:java学习...
    99+
    2021-03-10
    java 三目运算符 运算原理
  • 深入理解 Go 中的字符串
    目录字符串的本质字符串的底层原理字符串的本质 在编程语言中,字符串发挥着重要的角色。字符串背后的数据结构一般有两种类型: 一种在编译时指定长度,不能修改一种具有动态的长度,可以...
    99+
    2022-06-07
    GO 字符串 字符
  • 深入理解Java中的HashMap
    目录一、HashMap的结构图示二、HashMap的成员变量以及含义2.1、hash方法说明2.2、tableSizeFor方法说明三、HashMap的构造方法四、HashMap元素...
    99+
    2022-11-12
  • 深入解析Go语言中各种运算符的优先级排序方法
    深入解析Go语言中各种运算符的优先级排序方法在Go语言中,运算符的优先级决定了表达式中运算符的计算顺序。正确理解运算符的优先级是编写高效代码的关键之一。本文将深入解析Go语言中各种运算符的优先级排序方法,并提供具体的代码示例。一、算术运算符...
    99+
    2023-12-23
    运算符优先级 Go语言运算符 优先级排序方法
  • Javascript中异步等待的深入理解
    在本文中,我们将探讨async/await对于每个Javascript开发人员来说,异步编程的首选工具。如果您不熟悉javascript,请不要担心,本文将帮助您async/awai...
    99+
    2022-11-12
  • Java深入讲解异常处理try catch的使用
    目录1.try-catch异常处理说明2.try-catch异常处理细节示例01测试结果01示例02测试结果021.try-catch异常处理说明 Java提供try和catch块来...
    99+
    2022-11-13
  • 深入理解java中Arrays.sort()的用法
    在Java中,Arrays.sort()方法是用来对数组进行排序的。它使用了经过优化的快速排序算法,可以对任何类型的数组进行排序。A...
    99+
    2023-08-14
    Java
  • 深入浅析java中connection reset 的异常处理
    今天就跟大家聊聊有关深入浅析java中connection reset 的异常处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Java中常看见的几个connection rest...
    99+
    2023-05-31
    connection reset java
  • 夯实Java基础系列10:深入理解Java中的异常体系
    本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h3pl/Java-Tutorial喜欢的话麻烦点下Star哈文章首发于我的个人博客:www.how2pla...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作