JAVA PHP 按位异或运算_对php位运算^(按位异或)的理解
最近在看一些加密函數(shù),其中總涉及到一些位運(yùn)算,尤其是^(按位異或),經(jīng)過多方查找資料,對(duì)^的理解深入,分享資料留作紀(jì)念!
/*
手冊(cè)資料:
位運(yùn)算符
位運(yùn)算符允許對(duì)整型數(shù)中指定的位進(jìn)行置位。如果左右參數(shù)都是字符串,則位運(yùn)算符將操作字符的 ASCII 值
$a ^ $b Xor (按位異或) 將把 $a 和 $b 中不同的位設(shè)為 1
*/
^(按位異或)的運(yùn)算實(shí)例
#數(shù)字之間位運(yùn)算
echo 12 ^ 9; // 輸出為 '5'
#字符串之間位運(yùn)算
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
分析:在定義中我們可以知道,位運(yùn)算符允許對(duì)“整型”中指定的位進(jìn)行置位.但是也不僅僅只是支持“整數(shù)”,還支持字符串,不過如果左右參數(shù)都是字符串,則位運(yùn)算符將操作“字符的 ASCII 值”,也就是如果是字符串,將轉(zhuǎn)變成字符相應(yīng)的ASCII 然后再進(jìn)行操作.
#對(duì)與字符串操作,根據(jù)上面分析,原理總結(jié)如下:
$aa= 'a'^'b';
$bb= chr(ord('a')^ord('b'));
var_dump($aa);
var_dump($bb);
#以上兩種寫法結(jié)果是一樣的
總結(jié)
以上是生活随笔為你收集整理的JAVA PHP 按位异或运算_对php位运算^(按位异或)的理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R ggplot绘制双纵坐标轴
- 下一篇: 网站隐藏跳转代码php,域名跳转代码[可