位运算异或^的奇技淫巧

简介: 位运算异或^的奇技淫巧

^异或的性质

1、交换律  a^b==b^a

2、结合律  (a^b)^c==a^(b^c)

3、对于任何数x,都有x^x=0,x^0=x,同自己求异或为0,同0异或为自己

4、A^A^B=B,连续和同一个因子做异或运算,最终结果为自己!


异或^的例题

一、找出唯一成对的数


image.png

思路:

本题只有一个数是成对的,其余数全部单独出现。因此我们可以让这1001个数自己跟自己^,此时单独的数全部成对,而唯一成双的数变成了3个数,,此时根据异或运算的性质,成双的数全部变成0;只有奇数个数,异或后才是自己

编程实现:

首先需要按照题目要求创建一个数组存放1~1000的数,且需要重复一个,可以利用生成随机数实现。

接着利用循环,将数组的数两次^

image.png

二、找出唯一落单的数

将所有成员进行^,相对第一道题更加简单

相关文章
|
存储 网络协议 C语言
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
【C/C++ 串口编程 】深入探讨C/C++与Qt串口编程中的粘包现象及其解决策略
1171 0
Windows 10 控制台cmd中文显示乱码的解决方案
Windows 10 控制台cmd中文显示乱码的解决方案
Windows 10 控制台cmd中文显示乱码的解决方案
|
XML 开发框架 JSON
成功实现C++调用C#写的库(CLR),我的个人心得与总结
成功实现C++调用C#写的库(CLR),我的个人心得与总结
2539 0
|
资源调度 算法 Linux
Linux进程/线程的调度机制介绍:详细解析Linux系统中进程/线程的调度优先级规则
Linux进程/线程的调度机制介绍:详细解析Linux系统中进程/线程的调度优先级规则
3364 0
|
存储
Qt使用 QSetting 对 ini 配置文件进行操作
Qt使用 QSetting 对 ini 配置文件进行操作
1201 0
|
SQL XML Java
蓝易云 - ibatis与mybatis的区别
总的来说,MyBatis在功能性和易用性上都优于iBatis,是iBatis的改进版。
178 2
|
Java Nacos 数据库
nacos源码打包及相关配置
nacos源码打包及相关配置
627 4
|
数据挖掘 UED
ERP系统的用户体验与界面设计:提升用户满意度与操作效率
【7月更文挑战第29天】 ERP系统的用户体验与界面设计:提升用户满意度与操作效率
1237 1
常见代码命名规范
常见代码命名规范
405 0
|
Linux 芯片
一篇文章讲明白Linux下控制GPIO的三种方法
一篇文章讲明白Linux下控制GPIO的三种方法
1809 3