+ -
当前位置:首页 → 问答吧 → 书-p44-"wolf"&"cat"为“cad”?

书-p44-"wolf"&"cat"为“cad”?

时间:2007-08-10

来源:互联网

请问一下书-p44-"wolf"&"cat"为“cad”?
它这个安位与(&);像这个字符串之间的与是按照二进制来转换以后再相与的吗?
如果不是那是按照什么规则来相与的呢?


再有一个上次版主说了"=>"一般用在数组里面;
那它在数组里有哪些功能呢?(详细)


谢谢!!:) :) :)

作者: stratorway   发布时间: 2007-08-10

是根据字符的ASCII值来转换的。

你可以简单地写一个程序来验证:
echo "wolf" & "cat";

输出:
cad

具体运算过程比较复杂,是这样的:
首先最短为三个字符,所以
"wolf"&"cat"我们只需要考虑"wol"&"cat" ,wolf中最后一个f不考虑

然后把各字母转换为ASCII码,再把ASCII码转成二进制表示:
比如首位为w和c:

字母  ASCII  二进制值
w       119    1110111
c        99      1100011

现在我们把两个二进制值进行按位与操作,位上都为1则等于1,否则为0
1110111
1100011
-------------
1100011

所以得到结果为 1100011,即字母c

所以首个字母w&c的结果为c

同样道理,可以计算o&a和l&t,得到a和d,最后把c,a,d连接起来,即得到最终结果“cad”

位操作相对比较复杂,也比较少用到,初学者不会也没关系。

至于=>符号,其作用就是用于连接数组的键名和键值。

比如array('name'=>'haohappy')的意思就是,数组中有一个名为name的元素,其值为haohappy。

作者: Haohappy   发布时间: 2007-08-12

辛苦你了!!楼主!!!:) :)

作者: stratorway   发布时间: 2007-08-14

真详细,明白了:)

作者: wit   发布时间: 2007-08-26