切换到宽版
  • 7867阅读
  • 5回复

请教:xor的用法 [复制链接]

上一主题 下一主题
离线feynmanfans
 
只看楼主 正序阅读 0 发表于: 2006-11-08
偶然看到xor可以交换两个数

x:=x xor y;
y:=y xor x;
x:=x xor y;

但是运行结果不对啊
离线sunlight
只看该作者 5 发表于: 2006-11-09
XOR,与MOD,DIV,AND,OR,SHL,SHR类似,是二目运算符;
其中,
(1)i:=a XOR b 表示“换位异或”——若a,b的二进制数某一位上数值相同(如都为1),则结果的该位上二进制数值为0,否则为1;
(2)i:=a AND b 表示“换位与”——与逻辑运算的一样(在二进制每位上进行),
1 and 1=1;1 and 0=0;0 and 1=0;0 and 0=0;
(3)欢迎光临我的博客!
http://blog.oifans.cn/blog.php?uid=12

在那里有具体说明,不当之处,望不吝指出!

My Blog
[ 此贴被sunlight在2006-11-12 05:24重新编辑 ]
离线archimedes

只看该作者 4 发表于: 2006-11-09
THANKS 很好啊
离线feynmanfans
只看该作者 3 发表于: 2006-11-09
谢谢

发现我的问题了

当两个数相同的时候就会变成0
离线stevenjl

只看该作者 2 发表于: 2006-11-08
PASCAL也成功
program t1;
var x,y:integer;
begin
x:=5;
y:=6;
writeln(x,' ',y);
x:=x xor y;
y:=y xor x;
x:=x xor y;
writeln(x,' ',y);
end.
Dream Walker...
离线stevenjl

只看该作者 1 发表于: 2006-11-08
我这里是对的,不过我用的是C
x=x ^ y;
y=y ^ x;
x=x ^ y;
Dream Walker...
快速回复
限100 字节
 
上一个 下一个