PHPEye开源社区 » PHP技术讨论区 » PHP基础知识--字符串的位操作
《Programming PHP》第二版上市
2007-8-12 20:00 Haohappy
PHP基础知识--字符串的位操作

基础知识,为《Programming PHP》的读者解答的。

PHP中所有位操作符都可用于数字和字符串。如果是数字,要转换为二进制;如果是字符串要先转成ACSII值,再转为二进制数。

例如按位与(&):
[php]
<?php
echo "wolf"&"cat";

//输出 “cad”
?>
[/php]

具体运算过程是这样的:
首先最短为三个字符,所以
"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”。

2007-8-16 21:32 kuco
道理明白..但似乎应用的地方很少..

2007-8-28 17:20 mayongzhan
位运算只在考试的时候用到过,
不过位运算比普通的运算效率高很多.

比如 $a=3
要执行$a*2,
这样: $a<<1
位移一位就相当于乘二

2007-8-29 13:15 nawsber
从来没用过,这种字符的位运算用在什么地方?
wol&cat得到cad

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.