注册 登录
编程论坛 PHP技术论坛

小弟菜鸟,只问问问题

黑七指王 发布于 2005-12-28 09:57, 1510 次点击
<?php
echo 12 ^ 9;
// Outputs '5'

echo "12" ^ "9";
// Outputs the Backspace character (ascii 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello";
// Outputs the ascii values #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4
?>
为什么echo "12" ^ "9"; // Outputs the Backspace character (ascii 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8
echo "hallo" ^ "hello"; // Outputs the ascii values #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4

13 回复
#2
wangshaobo2005-12-28 10:27
你的意思是?
#3
黑七指王2005-12-28 10:32
为什么echo "12"^"9"的结果是:#8;
echo"hallo"^"hello" 的结果是:#4
#4
黑七指王2005-12-28 10:43
斑竹为什么不回答我问题呢?
郁闷img
#5
wangshaobo2005-12-28 10:59

当运算的对象是字符的时候,系统会转换为ascii码的形式进行

#6
wangshaobo2005-12-28 11:02
而且,你上面的形式能够看到结果吗,不会吧
#7
wangshaobo2005-12-28 11:09
首先你应该知道上面的"^"运算符是表示异或运算吧
#8
黑七指王2005-12-28 11:10
嘿嘿,不知道啊,它后面的注释,好象是结果是:#8,#4的;
那字符串的转化是一个字符字符的转化的吗?
#9
黑七指王2005-12-28 11:11
我知道^表示异或运算关系 啊!
#10
wangshaobo2005-12-28 11:13
是的,当两个字符相同的时候,它的ascii码相同,故进行异或运算后结果为0,而不同的字符它的ascii码不同,进行逐位比较,如果不同则为1
#11
黑七指王2005-12-28 11:18
echo "12" ^ "9"; 是如何比较的啊!
#12
wangshaobo2005-12-28 11:27

上面的"12"是作为字符出现的,它代表两个字符"1"和"2",而后面比较的只有一个字符"9",所以它将只比较第一个字符,即只有"1"和"9"参加运算

#13
黑七指王2005-12-28 11:32
斑竹啊,回我啊!
#14
黑七指王2005-12-28 11:33
谢谢啊,斑竹
1