JAVA PHP 按位异或运算_对php位运算^(按位异或)的理解
最近在看一些加密函數,其中總涉及到一些位運算,尤其是^(按位異或),經過多方查找資料,對^的理解深入,分享資料留作紀念!
/*
手冊資料:
位運算符
位運算符允許對整型數中指定的位進行置位。如果左右參數都是字符串,則位運算符將操作字符的 ASCII 值
$a ^ $b Xor (按位異或) 將把 $a 和 $b 中不同的位設為 1
*/
^(按位異或)的運算實例
#數字之間位運算
echo 12 ^ 9; // 輸出為 '5'
#字符串之間位運算
echo "12" ^ "9"; // 輸出退格字符(ascii 8)
// ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8
echo "hallo" ^ "hello"; // 輸出 ascii 值 #0 #4 #0 #0 #0
// 'a' ^ 'e' = #4
echo 2 ^ "3"; // 輸出 1
// 2 ^ ((int)"3") == 1
echo "2" ^ 3; // 輸出 1
// ((int)"2") ^ 3 == 1
分析:在定義中我們可以知道,位運算符允許對“整型”中指定的位進行置位.但是也不僅僅只是支持“整數”,還支持字符串,不過如果左右參數都是字符串,則位運算符將操作“字符的 ASCII 值”,也就是如果是字符串,將轉變成字符相應的ASCII 然后再進行操作.
#對與字符串操作,根據上面分析,原理總結如下:
$aa= 'a'^'b';
$bb= chr(ord('a')^ord('b'));
var_dump($aa);
var_dump($bb);
#以上兩種寫法結果是一樣的
總結
以上是生活随笔為你收集整理的JAVA PHP 按位异或运算_对php位运算^(按位异或)的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R ggplot绘制双纵坐标轴
- 下一篇: LeetCode: 871. Minim