pascal or,and,xor...... 运算

(-1)or (5)=-1???????????????
(-1)and(5)=5????

-1的二进制是1000001
5的二进制是0000101
(开头是1为负,是0为正)

1000001 and
0000101 (同为1则为1)
0000001 结果
转为十进制为1,即 -1 and 5=1

1000001 or
0000101 (一列中有一个为1则为1)
1000101 结果
转为十进制为-5,即 -1 or 5=-5

not就是求二进制数的反码,如 not 1=0 或 not 0=1

xor就是当一列数字不同时为1,如
1 xor
0 =
1

0 xor
1 =
1

0 xor
0 =
0

1 xor
1 =
0

楼下的,抄袭可是不好的!

参考资料:个人经验

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-17
-1的二进制是1000001
5的二进制是0000101
(开头是1为负,是0为正)

1000001 and
0000101 (同为1则为1)
0000001 结果
转为十进制为1,即 -1 and 5=1

1000001 or
0000101 (一列中有一个为1则为1)
1000101 结果
转为十进制为-5,即 -1 or 5=-5

xor就是当一列数字不同时为1,如
1 xor 0 =1
0 xor 1 =1
0 xor 0 =0
1 xor 1 =0本回答被提问者采纳
第2个回答  2009-10-17
这实际上是位运算,将两数换算成二进制数后,个位对齐进行逐个的比较,例如:23 xor 5
10111
00101(高位不足补0)
‘xor':如果某位的两数是1个'0'和1个‘1’则结果为‘1’ 否则为‘0’
所以 23 xor 5=10010=18
‘or':如果两数中有‘1’则结果为‘1’一个‘1’也没有为‘0’
所以 23 or 5=10111=23
‘and':两数都是‘1’则结果为‘1’否则为‘0’
所以 23 and 5=00101=5
纯手写,给点辛苦费吧~~~~
第3个回答  2009-10-17
转二进制后:
and:同真则真
or:有真就真
not:你真我假
xor:不同则真
(真为1,假为0)
然后转回十进制