异或运算^简述

异或运算:^

两个变量之间异或运算时,其二进制位相同取0,不同取1.

示例:a=10  (0b 0000 1010)

           b=3    (0b 0000 0011)

           a^b=9(0b 0000 1001)

据此可以推算异或运算"^"有以下特性:

a^a=0        (0b 0000 0000):相同变量异或运算=0

a^0x00=10(0b 0000 1010):跟0位异或运算即不变

a^0x0f=5   (0b 0000 0101):跟1位异或运算即按位翻转,此为^运算主要功能

进一步延伸,异或运算符可用于数据交换:

a=a^b=10^3=(0b 0000 1010)^(0b 0000 0011)=(0b 0000 1001)

b=b^a=          (0b 0000 0011)^(0b 0000 1001)=(0b 0000 1010)

a=a^b            (0b 0000 1001)^(0b 0000 1010)=(0b 0000 0011)

用这个方式写冒泡排序:

#include <stdio.h>int main(){int arr[]={21,12,11,10,70,21};int len=sizeof(arr)/sizeof(int); for(int i=len-1;i>0;i--){for(int k=0;k<i;k++){if(arr[k]>arr[k+1]){arr[k]=arr[k]^arr[k+1];arr[k+1]=arr[k+1]^arr[k];arr[k]=arr[k]^arr[k+1];}}}for(int j=0;j<len;j++){printf("arr[%d]=%d\n",j,arr[j]);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python使用apscheduler定时任务,固定周几运行程序

在add_job中添加参数day_of_week即可&#xff1a; day_of_week "0"表示&#xff1a;只有周一运行day_of_week "0-4"表示&#xff1a;周一到周五运行day_of_week "0,1,2"表示&#xff1a;周一二三运行 示例程序 from datetime import datet…

IDEA基本设置

本博客适用于纯新手小白&#xff0c;或者刚下载IDEA想要优化开发添加配置的读者。 基础设置 滚轮调整字体大小 打开 IntelliJ IDEA。 转到菜单栏中的 “File” -> “Settings”&#xff08;Windows/Linux&#xff09;或 “IntelliJ IDEA” -> “Preferences”&#xff…

2024年 Kubernetes 四大趋势预测

Kubernetes 在生产环境中的复杂性已经成为常态&#xff0c;在2023年这个平台工程盛行的时代&#xff0c;容器管理的最大亮点可能在于其灵活性&#xff0c;然而在运维政策和治理等方面仍然存在诸多挑战。Kubernetes 最大的吸引力之一在于其可扩展性和跨环境的广泛用例。但是&…

CTF show 71

CTF show 71 在源码中可以看到程序把缓冲区内容全部替换成了问号 ​​ ob_get_contents函数把缓冲区内容读到以后赋值给了变量s&#xff0c;类型是字符串。 ob_end_clean()函数清空当前缓冲区并且关闭缓冲区 ​​ 所以展示的结果中全是问号。所以我们需要在读取到文件以后…

计算机网络基础知识分享

计算机网络基础知识分享 发送一个http请求&#xff0c;从客户端到服务器端&#xff0c;都经历了什么? **Ⅰ&#xff0c;浏览器生成消息 ** &#xff08;1&#xff09;浏览器输入网址 我们的探索之旅从在浏览器中输入网址开始&#xff0c;网址&#xff0c;准确来说应该叫 UR…

JVM内存结构Java内存模型Java对象模型

悟空老师思维导图&#xff1a;https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9 1.JVM内存结构&&Java内存模型&&Java对象模型 1.1.JVM内存结构 1.2.Java对象模型 Java对象模型…

Isaac Sim urdf文件导入

本教程展示如何在 Omniverse Isaac Sim 中导入 urdf 一. 使用内置插件导入urdf 安装urdf 插件 方法是转到“window”->“Extensions” 搜索框中输入urdf, 并启用 通过转至Isaac Utils -> Workflows -> URDF Importer菜单来访问 urdf 扩展。 表格中的 1,2,3 对应着…

问题回复:什么是 Java 中的 Lambda 表达式?有什么应用场景?

Lambda 表达式是 Java 8 引入的一项重要特性&#xff0c;它允许在代码中以更简洁的方式表达匿名函数&#xff08;也称为闭包&#xff09;。Lambda 表达式的引入是为了提供一种更简单、更便捷的方式来写匿名内部类。 Lambda 表达式的语法如下&#xff1a; (parameters) -> …

C语言例题3

1.设x、y、z和k都是int型变量&#xff0c;则执行表达式&#xff1a;x&#xff08;y4&#xff0c;z16&#xff0c;k32&#xff09;后&#xff0c;x的值为&#xff08;32&#xff09;&#xff1b; x(y4,z16,k32),x的值为32 理解逗号运算符在c语言中的工作方式&#xff1a;逗号运算…

Visual Basic的故事

Visual Basic&#xff08;VB&#xff09;是一种由Microsoft开发的面向对象的事件驱动编程语言。VB的故事始于上世纪90年代初&#xff0c;它在Windows平台上的成功对于图形用户界面&#xff08;GUI&#xff09;应用程序的开发产生了深远的影响。以下是关于VB发展过程和相关开发者…

VR全景展示的功能有哪些?适合用于哪些领域?

现如今&#xff0c;VR全景展示技术已经逐渐融入了我们的日常生活中&#xff0c;可能大部分人都还没有意识到VR全景是如何应用的&#xff0c;但其实VR全景针对多个行业的垂直领域都有一定的落地使用。在互联网高速发展的今天&#xff0c;多媒体所包含的种类也越来越多&#xff0…

【美团大数据面试】大数据面试题附答案

目录 1.hdfs读写流程解析 2.hdfs副本机制&#xff0c;三副本原因&#xff0c;副本存放策略 3.hdfs容错机制原理 4.MapReduce执行流程详解 5.spark和mr的区别 6.TopN求法&#xff0c;大数据量无法完全写入内存解决方案&#xff0c;MapReduce实现方法 7.spark部署、调度原…

SpringAOP复习

SpringAOP AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程。他是一种可以在不修改原来核心代码的情况侠给程序动态统一进行增强的一种技术 SpringAOP&#xff1a;批量对Spring容器中的bean方法做增强&#xff0c;并且这种增强不会与原来方…

Odoo16 实用功能之在Form视图的各个部位加入按钮

目录 1、 如何在form视图中的头部加上按钮 2、如何在form视图中的身体加上按钮 3、如何在notebook标签中加入按钮 1、 如何在form视图中的头部加上按钮 以CRM中的渠道form视图为例子介绍&#xff08;实现红框中的效果&#xff09; 直接在<header>标签里加入按钮即可 …

树莓派4B搭建开源NAS系统openmediavault

目录 搭建过程使用镜像准备硬件准备软件账号信息制作系统盘首次启动配置获取树莓派IP地址 ssh登录到树莓派上登录到openmediavualt连接到wifi 搭建过程 搭建过程参考链接两篇文章,已经搭建完毕.期间遇到一些坑,为了方便大家,我把搭建好的镜像和使用到的工具放在百度网盘共享了…

谷歌Gemini中文疑似套壳百度文心一言

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 哈哈哈&#xff0c;没想到谷歌 Gemini 中文语言竟然来自百度的文心一言。 最近知名博主阑夕发微博称&#xff1a;在 Poe 平台上对 Gemini-Pro 进行了一个测试。问它 " 你是谁 "&#xff0c;Gemini-Pro 上…

HashSet 和HashMap的区别、优缺点、使用场景

HashSet和HashMap是Java集合框架中的两个常用类&#xff0c;它们都用于存储和管理数据&#xff0c;但在使用方式、功能和性能上有很大的区别。 HashSet和HashMap的区别 区别一&#xff1a;用途不同 HashSet&#xff1a;HashSet是一个基于哈希表的集合&#xff0c;用于存储不…

常用两种Linux命令生成器

在Linux中&#xff0c;可以使用多种命令来生成随机密码。以下是其中两种常用的命令&#xff1a; 1.pwgen&#xff1a;这个命令可以生成随机、无意义的但容易发音的密码。生成的密码可以只包含小写字母、大小写混合或数字。大写字母和数字会以一种便于记忆的方式放置&#xff0…

Java_Stream流

一、JDK8新特性&#xff08;Stream流&#xff09; 接下来学习一个全新的知识&#xff0c;叫做Stream流&#xff08;也叫Stream API&#xff09;。它是从JDK8以后才有的一个新特性&#xff0c;是专业用于对集合或者数组进行便捷操作的。有多方便呢&#xff1f;我们用一个案例体…

【OAuth2】授权框架的四种授权方式详解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《OAuth 2》。&#x1f3af;&#x1f3af; &#x1…