java 什么叫异或_Java中 ^异或
Java中 ^异或 &相与小常识
学过基本逻辑运算符我们知道 ^ 异或是什么意思
无外乎:相同为零,相异为1。
即 0 ^ 1 = 1,0 ^ 0 =0,1 ^ 1 = 0;
延伸至变量 :a ^ a = 0; a ^ 0 = a;
我们经常在某些交换值的算法中用到
void swap(int &a, int &b){
a = a^b;用a来当作中间桥梁
b = a^b;(即是(a ^ b) ^ b = a ^ 0 = a);//这样即是交换了a和b的值
a = a^b;//同理这个时候变成了 (a ^ b) ^ a = b;
}
所以我们来看这道入门题,参照网上一些大神的解法:
有1~1000这1000个数,放在大小为1001的数组中,只有一个元素值重复,要求不用辅助空间,每个数访问一次,找出重复的元素
你应该不难得到:
public class Yihuo {
public static void main(String[] args) {
int x = 0;
int[] arr = new int[1001];
//解释说明一下,因为是开了一个1001的数组,但是又因为有一个数重复
所以是arr.length -1
for (int i = 0; i < arr.length-1; i++) {
arr[i] = i + 1;
//System.out.println(arr[i]);这里可以自己测试一下
}
arr[arr.length -1] = new Random().nextInt(1000)+1;
//让这个重复的数随机生成
//这里就是让 x ^ i(相当于0^1^2……),
感到疑惑的小伙伴可以打印出来看看 ,你会发现最后相当于x = 0;很神奇
for (int i = 1; i < arr.length-1; i++) {
x = x ^ i;
System.out.println(x);
}
//最后再用这个x ^arr[i],这里就可以找出重复的值
(0 ^ 重复的数时,必然会让这个数显性)
for (int i = 0; i < arr.length; i++) {
x = x^arr[i];
}
System.out.println(x);
}
这里做一个小小记录,如果有不懂的小伙伴,再建议多找找其他技术帖看看,复制粘贴的小伙伴如果不需要注释,需要自行手动删除。另外粘贴时注意括号问题。
这里奉上另一位大神的写法,我也是参照过来的:
https://blog.csdn.net/qq_45784913/article/details/104172655
标签:arr,Java,int,异或,System,重复,length,println
来源: https://blog.csdn.net/wo_yuanchengfeng/article/details/111596342
java 什么叫异或_Java中 ^异或相关推荐
- java boolean几个字节_Java中boolean类型到底占用多少个字节?
1.时间:2017-07-03 07:37:06YuanMxy 2.问题描述:今天在复习java基础的时候发现一小问题,Java中boolean类型到底占用多少个字节? 3.问题解答: (1)什么是b ...
- java 基本类型的引用_Java中的基本数据类型与引用数据类型
一.基本数据类型 byte.short.int.long(整数类型) float.double(浮点数类型) char(字符型) boolean(布尔类型 ) Java数据大多数存放在堆栈中.栈区:存 ...
- java常见的报错_Java中常见的错误有哪些?
原标题:Java中常见的错误有哪些? 1.java.lang.Error 错误.是所有错误的基类,用于标识严重的程序运行问题.这些问题通常描述一些不应被应用程序捕获的反常情况. 原因: 1.对系统所访 ...
- java i 线程不安全_java中的++i是线程安全的吗?
java中的++i是线程安全的吗?为什么?怎么使它线程安全呢? 先说答案: 非线程安全 先说下为什么是非线程安全的? 从Java内存模型说起 Java内存模型规定了所有的便利都存储在主内存中,每个线程 ...
- java原始类型和引用类型_Java中的8种原始类型
java原始类型和引用类型 几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的. 这样,初学者的内容就更容易消化了. 首先,我将介绍有关Java的 ...
- java如何使截取字符串_java中如何截取字符串中的指定一部分
java中如何截取字符串中的指定一部分 关注:136 答案:4 mip版 解决时间 2021-02-06 13:27 提问者妳涐執唸汰深 2021-02-06 08:56 精选 比如 F:\wor ...
- 随机数在java 自旋锁的运用_Java 中自旋锁的实现
Java中初始是使用mutex互斥锁,因为互斥锁是会线程等待挂起,而对获取锁后的操作时间比较短暂的应用场景来说,这样的锁会让竞争锁的线程不停的park,unpark 的操作,这样的系统的调用性能是非常 ...
- java swap函数的包_java中swap函数
? ? ? 第1章 第2章 第3章 第4章 java语言概述 Java语言基础 对象与类 ...("swap方法里,a的值是" + a + ";b的值 是" + ...
- java截取字符串的一部分_java中如何截取字符串中的指定一部分
展开全部 java用substring函数截取string中一段字符串 在String中有两个substring()函数,如下: 一:String.substring(int start) 参数: s ...
- java int转无符号_Java 中使用无符号整型(unsigned int)的使用方法
背景 计算机科班出身大多学过离散数学,或者理工类专业也大多学习过 C 或 C++ 语言,从中我们了解到基本类型的整形有 short.int.long 等,还分别有无符号(unsigned)和带符号(s ...
最新文章
- AMAB interconnector PL301(二)
- HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试
- 字节码编辑器JClassLIb下载教程
- Vista系统自带IIS 7.0设置技巧详解
- 递归修改子目录及文件的权限
- raspberry pi_在Raspberry Pi上使用Mathematica进行高级数学运算
- 对美食评语进行情感分析
- Spring JDBC 【继承JdbcDaoSupport】
- Udacity也弃用React Native了 !
- Access2016学习2
- 人人有用的零基础理财入门课(水湄物语)
- 金蝶云星空API调用实践
- 在这里,北上深成为“社科之城”
- vue小白的自学笔记
- gif动态图如何制作?
- linux上cgconfig服务,linux系统调优-Cgroups
- IPV6 邻居发现协议(NDP)
- 小程序关注公众号的方法总结
- 如何写一封稍微像样的求职邮件
- PyEcharts 之 仪表盘