pascal语言里XOR、OR的意义及详细用法

2024-11-23 00:51:35
推荐回答(4个)
回答(1):

xor异或:原则:不同则真
设两个布尔型量(或表达式)A,B,则当且仅当A,B中一个为true,一个为false时,表达式A xor B为真。
or或:原则:有真则真
对于A or B,只要A,B中有一个为true,表达式A or B就为真。

xor与or间有什么联系和区别呢?
xor是我们生活中所说的或,即条件是两者中只有一个为真时;
or是逻辑上的或,即有一个为真即为真。
也就是说,A=true,B=false;则A or B值为true,A xor B值为false。
A xor B=true的条件比A or B=true的条件更严格。也就是说,如果A xor B值为true,A or B必为true。你也可以理解为xor范围比or小。
pascal中,xor与or运算不仅限于表达式和布尔型量,比如21 xor 2。这是怎么计算呢?方法是按位或(异或)。
把21,2均转化为二进制数(分别为10101,10),再右对齐,像计算加法竖式那样。在这里面0代表false,1代表true。在每位上取或(异或)。
10101
10
-------
10111
所以结果就是二进制数10111转化成十进制:23。
观察一下你还可以发现:xor,or与按位做加法对应(若结果在某位上为1,则仅在1+0=1时,不过对于or有1 or 1=1);and就是按位做乘法(若结果在某位上为1,则仅在1*1=1时)。
若表达式 A<>B值为true,因为A,B要么为true,要么为false,(我不是设布尔量么)则自然是一个true,一个false。即对于布尔量、表达式的运算,xor与<>是等价的。
但对于21 xor 2,值为23;21<>2,值为true。(21<>2被视为表达式)。
希望能使你理解。谢谢。

回答(2):

or或运算

或运算符要求两个运算值,然后返回一个值,当且仅当两个运算值中有一个为1或都为1时,返回值为1。如下表:

1 or 1 == 1
1 or 0 == 1
0 or 1 == 1
0 or 0 == 0

xor 异或运算

异或运算符要求有两个运算值,然后返回一个值,当且仅当两个运算值中有一个为1但不同时为1时,返回值为1。如下表:

1 xor 1 == 0
1 xor 0 == 1
0 xor 1 == 1
0 xor 0 == 0

区别:
两个相同的东西异或的结果是假;两个不同的东西异或的结果是真。从某一方面来讲,xor和(<>)是一样的。

回答者: fp_hwh - 实习生 一级 2009-10-14 23:29

xor异或:原则:不同则真
设两个布尔型量(或表达式)A,B,则当且仅当A,B中一个为true,一个为false时,表达式A xor B为真。
or或:原则:有真则真
对于A or B,只要A,B中有一个为true,表达式A or B就为真。

xor与or间有什么联系和区别呢?
xor是我们生活中所说的或,即条件是两者中只有一个为真时;
or是逻辑上的或,即有一个为真即为真。
也就是说,A=true,B=false;则A or B值为true,A xor B值为false。
A xor B=true的条件比A or B=true的条件更严格。也就是说,如果A xor B值为true,A or B必为true。你也可以理解为xor范围比or小。
pascal中,xor与or运算不仅限于表达式和布尔型量,比如21 xor 2。这是怎么计算呢?方法是按位或(异或)。
把21,2均转化为二进制数(分别为10101,10),再右对齐,像计算加法竖式那样。在这里面0代表false,1代表true。在每位上取或(异或)。
10101
10
-------
10111
所以结果就是二进制数10111转化成十进制:23。
观察一下你还可以发现:xor,or与按位做加法对应(若结果在某位上为1,则仅在1+0=1时,不过对于or有1 or 1=1);and就是按位做乘法(若结果在某位上为1,则仅在1*1=1时)。
若表达式 A<>B值为true,因为A,B要么为true,要么为false,(我不是设布尔量么)则自然是一个true,一个false。即对于布尔量、表达式的运算,xor与<>是等价的。
但对于21 xor 2,值为23;21<>2,值为true。(21<>2被视为表达式)。

回答(3):

异或: 二进制运算。可逆运算。1 xor 1=0,0 xor 0=0,1 xor 0=1,0 xor 1=1。
a xor b的运算方法:将a,b 转化为2进制数,再进行对比,每个数位上的0或1如果相同,那么结果就取0,如果不同就取1,将得到的结果转化为原来进制的数,就是结果。
在OI中,常用于位运算。

或运算,二进制运算.可逆运算.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.最后再把它转换成十进制就可以了.

回答(4):

or或运算

或运算符要求两个运算值,然后返回一个值,当且仅当两个运算值中有一个为1或都为1时,返回值为1。如下表:

1 or 1 == 1
1 or 0 == 1
0 or 1 == 1
0 or 0 == 0

xor 异或运算

异或运算符要求有两个运算值,然后返回一个值,当且仅当两个运算值中有一个为1但不同时为1时,返回值为1。如下表:

1 xor 1 == 0
1 xor 0 == 1
0 xor 1 == 1
0 xor 0 == 0

区别:
两个相同的东西异或的结果是假;两个不同的东西异或的结果是真。从某一方面来讲,xor和(<>)是一样的。