重点:在php中 字符(字符串)的位运算操作 是按照Ascii码值来进行计算的
在进行位运算时 如果 其中有一个为数字,则全部按照数字计算,如果都是字符串,则按照assic进行计算
如 “10”| 2 或者 “2” | 10
数字的位运算按照二进制操作
字符串的位运算规则如下
例如:
10|2 运算结果为 10
“10”|“2” 运算结果为:30
解析:
1. 将字符串"10"分割为两个字符 “1” 和 “0” ,转化为相应的Ascii码值分别为 49 和 48 则对应的二进制为 00110001 和 00110000
2. 将字符串"2" 转化为相应的Ascii码值为 50 则对应的二进制为 00110010
3. 因为ascii码以二进制8位一组 在进行运算时左对齐进行运算,后面不够的补0(00000000为字符串 null)
4. 相应计算如下
格式:二进制【Ascii->十进制】
字符串"10" | 00110001 【49->1】 | 00110000【48->0】 |
字符串"10" | 00110010 【50->2】 | 00000000【0->Null】 |
计算结果 | 00110011【51->3】 | 00110000【48->0】 |
计算出来的ascii值为 51 和 48 分别对应字符串 “3” 和“0”即为30