当前位置: 首页 > news >正文

沙市网站建设旅游药都网站建设方案

沙市网站建设,旅游药都网站建设方案,学院 网站 两学一做,友情链接的方式如何选择今天我们来学习C语言中的异或。 文章目录 一、基本知识#xff1a;异或操作满足的定律#xff1a;(important) 二、拓展应用#xff1a;1. 交换两个变量的值#xff1a;2. 判断两个数的奇偶性#xff1a;3. 检测落单的数(出现奇数次的数)#xff1a;检测丢失的数: 4. 加密…今天我们来学习C语言中的异或。 文章目录 一、基本知识异或操作满足的定律(important) 二、拓展应用1. 交换两个变量的值2. 判断两个数的奇偶性3. 检测落单的数(出现奇数次的数)检测丢失的数: 4. 加密和解密 三、与离散数学中的异或进行对比 一、基本知识 ✨在C语言中异或XOR是一种逻辑运算符用符号^表示。异或操作是将两个操作数的每一位进行比较如果相同则结果为0如果不同则结果为1。 左操作数右操作数结果000011101110 例如假设有两整数变量a和b其二进制表示分别为 a 1010 , b 1100执行a ^ b操作后得到的结果是 a ^ b 0110 ✨总结起来0和任何数异或还是任何数1和任何数异或则是任何数的取反。 异或操作满足的定律(important) 结合律对于任意三个操作数a、b、c有(a ^ b) ^ c a ^ (b ^ c)。即异或操作在多个操作数之间满足结合律。 交换律对于任意两个操作数a和b有a ^ b b ^ a。即异或操作的顺序可以交换。 自反性对于任意操作数a有a ^ a 0。即一个数与自身进行异或操作的结果为0。 零元素对于任意操作数a有a ^ 0 a。即一个数与0进行异或操作的结果为它本身。 唯一性对于任意操作数a有a ^ a 0a ^ 0 a。即一个数与自身进行异或操作的结果为0与0进行异或操作的结果为它本身。 二、拓展应用 1. 交换两个变量的值 ✨可以使用异或操作来交换两个变量的值而无需使用第三个变量。 例如 int a 10; int b 20;a a ^ b; b a ^ b; a a ^ b; // 现在a的值为20b的值为10❓可能会有人有疑问为啥右边都是a^b但最终的结果就可以交换呢让我们来一步步分析 首先通过a a ^ b后a的值将会发生改变至于变为多少我们不关心因为没必要算实在想算也可以写出二进制表达后再用定义计算。然后通过b a ^ b后因为a的值已经发生了改变即此式等价于b a ^ b ^ b a ^ 0 a从而将a的值赋给了b。最后a a ^ b a ^ b ^ a a ^ a ^ b 0 ^ b b。从而实现两个数值的交换。 ✨你是否又想到了排序算法中两个值的交换呢当时我们是通过定义一个临时变量中间媒介来完成两个数的交换类似下面这种方法 int tempa; ab; btemp;当然还有很多交换变量值的方法我们这里就不展开论述了以后有机会会进行讲解。 2. 判断两个数的奇偶性 ✨可以使用异或操作来判断两个数的奇偶性。如果一个数的二进制表示的最后一位为1则该数为奇数如果最后一位为0则该数为偶数(我们上节已经讲过了)。因此可以使用异或操作来判断两个数的奇偶性。例如 int num 10; int resultnum ^ 1 if (resultnum) {printf(num是奇数); } else {printf(num是偶数); }为啥要这样写呢❓ 如果一个数为奇数则其的二进制表示的最后一位为1和1异或后最后一位变为0其余位值不变所以异或的结果小于原数(小了1)反之若一个数为偶数则其的二进制表示的最后一位为0和1异或后最后一位变为1其余位值不变所以异或的结果大于原数(大了1) 3. 检测落单的数(出现奇数次的数) ✨异或操作可以用来检测数组中是否存在落单的元素。通过对数组中的所有元素进行异或操作如果结果为0则表示数组中没有落单的元素反之则有且计算结果就是该落单的数。例如 int arr[] {1, 2, 1, 3, 4, 3, 2, 1, 1}; int n sizeof(arr) / sizeof(arr[0]); int result 0;for (int i 0; i n; i) {result result ^ arr[i]; }if (result 0) {printf(数组中没有落单的元素); } else {printf(数组中存在落单的元素,输出如下);printf(%d,result); }检测丢失的数: 给定范围[a,b]的一系列数但是一个调皮的数跑丢了需要你把它找出来请问该怎么找答利用今天学习的异或知识就能轻松解决即把[a,b]所有的数(b-a1个)和丢失一个数的那些数(b-a个)放在一堆然后一起异或重复的数必定两两相消剩下的一个数就是那个调皮的数。 4. 加密和解密 ✨异或操作可以用来进行简单的加密和解密操作。通过将明文和密钥进行异或操作得到密文再将密文和密钥进行异或操作得到明文。例如 char plaintext[] Hello World; char key A; int n strlen(plaintext);for (int i 0; i n; i) {plaintext[i] plaintext[i] ^ key; }printf(加密后的密文%s\n, plaintext);for (int i 0; i n; i) {plaintext[i] plaintext[i] ^ key; }printf(解密后的明文%s\n, plaintext);哈哈,是不是很有趣呢 三、与离散数学中的异或进行对比 ✨离散数学中的异或运算是一种基于布尔代数的运算也称为逻辑异或运算。它的规则与C语言中的异或运算类似只不过它的操作对象是逻辑值真或假。 在离散数学中异或运算的结果为真1的条件是有且仅有一个操作数为1。如果两个操作数都为1或都为0则结果为假0。 例如假设有两个命题p和q它们的真假分别为(p 1q 0) 或(p0,q1)。那么p ⊕ q的结果为1因为有且仅有一个操作数为1。 ———————————————— 好了今天的讲解就到这里了相信你也是收获满满吧!❤️
http://www.yutouwan.com/news/103802/

相关文章:

  • 那些免费网站可以做国外贸易怎么看一个网站什么程序做的
  • 北京企业网站设计报价河北建设工程信息网官网首页
  • 北京网站设计 培训如何评价伊利集团网站建设
  • 搭建个人网站的步骤企业所得税退税怎么做账务处理
  • 郑州市建设厅官方网站vps架设好网站访问不了
  • 购买网站建设平台搜索引擎网站推广定义
  • 网站备案掉了万能设计导航
  • 四博互联做的网站宠物网站建站目标
  • 电商网站建设网络公司上海专建贸易有限公司
  • 做学校网站导航条应该有哪些石家庄网站优化多少钱
  • 公司网站建设费用关于网站建设
  • 外贸公司应该怎样做外贸网站网站建设与管理自考本
  • 东莞营销型网站建设公司深圳品牌创意网站建设
  • 视频网站为什么有人做做结构图用什么网站
  • 茶叶flash网站辽宁建设工程质量监督站网站
  • 网站空间单位江苏建设信息网站有时候打不开
  • 人才招聘网站开发+源代码湖南省住房和城乡建设厅网站
  • 上海企业网站优化平面设计要什么学历
  • 网站 制作价格wordpress 树 插件
  • 文化传播公司 网站设计介绍自己的网页
  • 做网站之前需要准备什么条件做网站柳州
  • 网站被屏蔽怎么访问sae wordpress 安装主题
  • 免费的外贸网站推广方法网站封装成app可以做热更新
  • 销售网站开发与设计现状漫画网站做任务给金币
  • 网站漏洞怎么修复wordpress 不能换行
  • 公司网站建设接单哈尔滨建站模板系统
  • 向搜索引擎提交网站地图线上销售平台如何推广
  • 网站需要建手机版的吗移动端网站开发项目报告
  • wordpress自适应方法seo综合查询中的具体内容有哪些
  • 做网站的工作轻松吗上海知名 网站设计公司