or、xor、and、not的定义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了or、xor、and、not的定义相关的知识,希望对你有一定的参考价值。

pascal中,or、xor、and、not的定义

1、OR或运算,二进制运算.可逆运算.1 or 1=1,1 or 0=1,0 or 0=0,0 or 1=1。“∨”表示逻辑加,规则为0∨0=0、0∨1=1、1∨0=1、1∨1=1。

a or b 的运算方法:将a和b转换成2进制后,一位一位地去比较,每个数位上只要有一个为1的,那么就是1,否则为0,最后再把它转换成十进制就可以了。

2、异或,英文为exclusive OR,缩写成xor。异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。其运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)。

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假。

3、AND在编程术语中表示一种运算方法,不可逆。常用符号:&(按位与),&&(逻辑与)

其运算规则如下:1&1=1; 真&&真=真;1&0=0; 真&&假=假;0&1=0; 假&&真=假;0&0=0; 假&&假=假;即与0则0,常用此特性来将某些位置0或保存某些位。

如汇编语句:AND EAX,80000007,其位31、2、1、0不变,其余位置0。

4、NOT函数是用于对参数值求反的一种Excel函数。当要确保一个值不等于某一特定值时,可以使用NOT函数。简言之,就是当参数值为TRUE时,NOT函数返回的结果恰与之相反,结果为FALSE。

比如NOT(2+2=4),由于2+2的结果的确为4,该参数结果为TRUE,由于是NOT函数,因此返回函数结果与之相反,为FALSE。

扩展资料:

异或逻辑的关系是:当AB不同时,输出P=1;当AB相同时,输出P=0。“⊕”是异或运算符号,异或逻辑也是与或非逻辑的组合,其逻辑表达式为:P=A⊕B

异或运算的规则是0⊕0=0,0⊕1=1;1⊕0=1,1⊕1=0。

参考资料来源:百度百科-AND

参考资料来源:百度百科-xor

参考资料来源:百度百科-OR

参考资料来源:百度百科-NOT函数

参考技术A or为或,a or b中有一项为真值就为真xor为异或,a xor b中a=b为假,a<>b为真and为且,a and b中两项都为真值才为真not为非,not a中a为真值为假,a为假值为真 位运算这是把两个数化成二进制数以后进行的运算例如十进制数5化成二进制数101,6化成110,则5 or 6为101110-----111二进制数111化成十进制数7其中每一位的运算与逻辑运算相似,摆成右对齐的竖式后,同列有一个1就得1,否则为0所以5 or 6=7然后是xor5 xor 6101110-----011二进制数11化为十进制数3同列相等为0不相等为15 and 6101110-----100(100)2=(4)10两个都是1才为1最后not 5101-----010(10)2=(2)10not在位运算中的含义是"位取反",每一位都取反,1为0,0为1. 5 or 6=75 xor 6=35 and 6=4not 5=2 参考技术B not优先于and优先于or和Xoror是“或”运算,a or b中只要有一个为真则结果为真。True or True=True True or False=TrueFalse or True=TrueFalse or False=Falseand是“与”运算,a and b只有都为真结果才为真。True and True=True True and False=FalseFalse and True=FalseFalse and False=Falsexor是“异或”运算,相同为真,不同为假,True xor True=FalseTrue xor False=TrueFalse xor True=TrueFalse xor False=Falsenot是“非”运算,就是取相反。not(True)=Falsenot(False)=True 参考技术C not级别最高
and次之
xor和or同级,
not>and>or=xor

位运算

 

①运算符号

  • and &
  • xor ^
  • or |
  • not ~
not运算的定义是把内存中的0和1全部取反。使用not运算时要格外小心,你需要注意整数类型有没有符号。如果not的对象是无符号整数(不能表示负数),那么得到的值就是它与该类型上界的差,因为无符号类型的数是用00到$FFFF依次表示的。下面的两个程序(仅语言不同)均返回65435。
  • shl <<
  • shr >>

和shl相似,a shr b表示二进制右移b位(去掉末b位),相当于a除以2的b次方(取整)。我们也经常用shr 1来代替div 2,比如二分查找、堆的插入操作等等。想办法用shr代替除法运算可以使程序效率大大提高。最大公约数的二进制算法用除以2操作来代替慢得出奇的mod运算,效率可以提高60%。

②应用

 

下面列举了一些常见的二进制位的变换操作。

 

功能 | 示例 | 位运算
————————————————————
 

 

去掉最后一位 | (101101->10110) | x shr 1

 

在最后加一个0 | (101101->1011010) | x shl 1

 

在最后加一个1 | (101101->1011011) | x shl 1+1

 

把最后一位变成1 | (101100->101101) | x or 1

 

把最后一位变成0 | (101101->101100) | x or 1-1

 

最后一位取反 | (101101->101100) | x xor 1

 

把右数第k位变成1 | (101001->101101,k=3) | x or (1 shl (k-1))

 

把右数第k位变成0 | (101101->101001,k=3) | x and not (1 shl (k-1))

 

右数第k位取反 | (101001->101101,k=3) | x xor (1 shl (k-1))

 

取末三位 | (1101101->101) | x and 7

 

取末k位 | (1101101->1101,k=5) | x and(1 shl k-1)

 

取右数第k位 | (1101101->1,k=4) | x shr (k-1) and 1

 

把末k位变成1 | (101001->101111,k=4) | x or (1 shl k-1)

 

末k位取反 | (101001->100110,k=4) | x xor (1 shl k-1)

 

把右边连续的1变成0 | (100101111->100100000) | x and (x+1)

 

把右起第一个0变成1 | (100101111->100111111) | x or (x+1)

 

把右边连续的0变成1 | (11011000->11011111) | x or (x-1)

 

取右边连续的1 | (100101111->1111) | (x xor (x+1)) shr 1

 

去掉右起第一个1的左边 | (100101000->1000) | x and not (x xor (x-1))(或 x and (-x))

 

最后这一个在树状数组中会用到。
 
变量交换:
 1 #include<cstdio>
 2 #include<cstdlib>
 3 int main()
 4 {
 5     int a,b;
 6     scanf("%d %d",&a,&b);
 7     a=a^b;
 8     b=a^b;
 9     a=a^b;
10     printf("%d %d\\n",a,b);
11 }

 

  例题

 

 

 

 

 

以上是关于or、xor、and、not的定义的主要内容,如果未能解决你的问题,请参考以下文章

Python 逻辑代码:AND、NAND、OR、NOR、XOR、XNOR 和 NOT 模拟

delphi 按位运算 not and or xor shl shr

汇编指令学习(AND,OR,XOR,NOT)

在vb.net中Not,And,Or,Xor相当于C++里面的啥的????????? 他们啥意思呀

(32位汇编 五)mov/add/sub/and/or/xor/not

DL之Perceptron:感知器(多层感知机/人工神经元)的原理之基于numpy定义2层感知机底层逻辑代码(与门AND/与非门NAND/或门OR是)解决XOR异或问题之详细攻略