异或XOR相关用法

学习内容:

逻辑运算异或XOR的相关知识与实际用法

1、 异或的概念与表示方法
2、 异或运算的二进制加法应用-Simulink
3、异或算法加密与解密的应用-C语言
4、异或算法交换两个整数的应用-C语言


1 异或的概念与表示方法

数字门电路中逻辑关系有:与(AND)、或(OR)、与非(NAND)、或非(NOR)、异或(XOR)、异或非(NXOR)、非(NOT)。 其中异或表示相异为真,相同为假;即只要运算中一方为1,一方为0,则结果为1,否则为0。

  • Matlab:c=xor(a,b)
  • Simulink:
    在这里插入图片描述
    在这里插入图片描述
  • C语言:c=a^b
  • 真值表如下表所示:
abc
000
101
011
110
  • XOR满足交换律和结合律:
(a xor b) xor c = a xor (b xor c);
(a xor b) xor b = a; %自己是自己的逆,因为b xor b=0

2 异或运算的二进制加法应用

  • 门电路中常被用于二进制加法器上,二进制加法的结果是分为加法位进位位。需要先理解计算机中二进制加法原理,首先计算不用进位的位置,做“或”运算(加法位);然后计算进位的位置做“与”运算(进位位),将进位的结果向左移位,再和加法位相加,按递归下去得到最终结果。

  • 当只有两个一位二进制相加时,可以使用半加器(按位异或),即实现两个1位二进制数相加不考虑低位的进位;当有多个一位二进制数相加,就需要考虑前一位是否有进位,相当于要考虑三个变量,加数、被加数、低位的进位,称为全加器 (两个半加器级联)。

全加器: Simulink例子【参考其他博客,增加理解】

  • 通过全加器来模拟二进制加法原理,给出两个二进制数A、B,Ci为外部进位输入信号,S为输出的和,C0为进位信号。
    在这里插入图片描述
    根据真值表写表达式,s和c0结果为0的不考虑。(注意:这里每一行都是一个单独的数,仍属于1位二进制数
    在这里插入图片描述
    ,只看s为1的四行即可,0为非,1为真。
    在这里插入图片描述
    同理只看c0为1的四行。

  • 搭建Simulink模型如下图:

在这里插入图片描述
其中生成二进制数的脉冲发生器设置如图:
在这里插入图片描述

  • 仿真结果如下图:

在这里插入图片描述
多位二进制数加法

  • 最低位时是两个数的最低位相加,无需考虑进位,是半加器;其余各位都是三个数相加(加数、被加数、进位数)。所以多位加法器可以通过多个上述的一位加法器级联而来,参考网上4位串行加法器使用4个全加器级联。
    在这里插入图片描述
    对于多位二进制数,我的理解是每次运算进行的位数,如2位二进制最多运算2位,11+11;4位最多运算4位,1111+1111。1为高电平,0为低电平;2位加法器,00,01,10,11表示低低、低高、高低、高高。

  • Simulink模型搭建一个2位加法器,可以通过1个半加器存放每个低位的结果,低位的进位给下方高位全加器作为进位输入,参考理解该博主的文章《MATLAB之Simulink(四)两位二进制数加法器》,其中有错误,正确模型如下:
    在这里插入图片描述
    第一个加数Scope(低位在上,高位在下):
    在这里插入图片描述
    第二个被加数Scope:
    在这里插入图片描述
    第三个最终Scope:
    在这里插入图片描述


3 异或算法加密与解密的应用-C语言

加密和解密原理就是XOR是本身的逆运算,代码理解参考下方:

  • https://blog.csdn.net/monster663/article/details/107295825
  • https://blog.csdn.net/monster663/article/details/107142732

4 异或算法交换两个整数的应用-C语言

交换两个整数a、b有三种方法:

  • 临时变量c过渡;
  • 加减法 a=a+b;b=a-b;a=a-b
  • 异或法,可以避免越界缺陷,计算速度也快
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
#include <stdio.h>

void main()
{
	int a=3,b=4;

	 a=a^b;
	 printf("first value %d\n",a);

	 b=b^a;
	 printf("second value %d\n",b);

	 a=a^b;
	 printf("third value %d\n",a);

}

在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: c关系逻辑表达式计算器是一种能够计算关系逻辑表达式的工具。它可以处理包括等于、不等于、大于、小于、大于等于、小于等于等关系操作符的表达式,并能够自动进行逻辑运算,包括与、或、非等逻辑操作符。使用这种计算器,我们可以快速准确地计算各种关系逻辑表达式,避免了手算带来的繁琐计算、容易出错等问题,提高了计算效率与结果的精确度。 此外,c关系逻辑表达式计算器还支持多种输入方式,包括手动输入、复制黏贴等,并且可以同时显示输入表达式和计算结果,便于用户随时查看调整输入表达式、核对计算结果。除此之外,它还具备简单易用的操作界面,使得用户无需复杂的学习与使用过程,即可快速上手使用。这些特点使c关系逻辑表达式计算器成为一个非常有用的计算工具,在日常、工作和学习中发挥着重要的作用。 ### 回答2: 关系逻辑表达式计算器是一种能够解析、计算关系逻辑表达式的工具。该计算器通过输入关系逻辑表达式,自动解析表达式中的逻辑关系,并最终给出表达式的真值。 关系逻辑表达式在数学、计算机科学和形式逻辑等领域中得到了广泛的应用。在这些领域中,关系逻辑表达式常用于表达两个或多个变量之间的关系,以及对这种关系进行条件判断和逻辑推理。例如,在计算机科学中,关系逻辑表达式常用于编写程序中的条件语句和循环语句;在数学中,关系逻辑表达式则常用于数学证明中的推理步骤。 而关系逻辑表达式计算器,则为用户提供了一个便捷的工具,可以帮助用户快速解析和计算其所需的关系逻辑表达式。在使用该计算器时,用户只需输入表达式,输入表达式中所用的逻辑运算符和变量,并点击计算器的计算按钮即可。 除此之外,一些高级的关系逻辑表达式计算器还可以提供额外的功能,例如:支持嵌套表达式、支持多种逻辑运算符、支持多种参照值等。这些功能可以帮助用户更清晰地编写复杂的关系逻辑表达式,并能得到更准确的计算结果。 总之,关系逻辑表达式计算器是一种非常实用的工具,能够帮助用户更快、更准确地计算和解析复杂的关系逻辑表达式,是数学、计算机科学和形式逻辑等领域的重要工具之一。 ### 回答3: c是一款关系逻辑表达式计算器,它可以通过输入关系逻辑表达式,运算出结果。在计算器的界面上,用户可以输入变量、运算符和括号,通过操作符的逻辑运算,计算出最终的逻辑结果。c计算器支持常用的逻辑操作符,如“与”(AND)、“或”(OR)、“非”(NOT)等,同时也支持其他进阶的逻辑运算符,如“异或”(XOR)等。 c计算器主要应用于计算机科学、数学等领域,它可以帮助我们在逻辑判断和决策过程中,快速准确地得出结果。例如,为了判断一个事物是否满足一定的条件,我们可以将条件表达式输入进c计算器中进行运算,得到最终的逻辑结果。此外,c计算器还可以帮助我们进行逻辑运算的拓展,比如布尔代数中的逻辑和与逻辑或等等。 总的来说,c计算器是一款实用、高效的逻辑计算工具,它帮助我们在实际工作和生活中更加方便地进行逻辑运算。这款计算器在线上和离线上都有应用,且使用起来简单易懂,越来越受到广大用户的欢迎。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值