重點:在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