您好,登錄后才能下訂單哦!
位運算算法:& ,|, ^, ~, >>, <<
1.常量定義:
寫法一:define ("AYX",0.08);
寫法二:const AYX=0.08;
2.函數引用:
寫法一:require 'function.php';
寫法二:require_once 'function.php';
寫法三:include 'function.php';
寫法四:include_once 'function.php';
函數名不區分大小寫
3.二進制:
最高位為符號位,正數為0,負數為1
原碼:用二進制來表示一個數
例:0000000 00000000 00000000 00000001(1 32位 4字節)
正數的原碼,反碼,補碼都一樣
負數的反碼:原碼符號位不變,其他位取反
負數的補碼:反碼+1
0的反碼,補碼都是0
php中都是有符號數
計算機運算時,都是以補碼形式運算
4.位運算:
按位與:$a & $b
按位或:$a | $b
按位異或:$a ^ $b 不同的位,置1
非:~$a 取反
左移:$a<<$b
右移:$a>>$b
規則:
算術右移:低位溢出,符號位不變,并用符號位補溢出的高位
算術左移:符號位不變,低位補
3*8===3<<3
例子:
1>>2=?
1補碼:00000000 00000000 00000000 00000001
1>>2 00000000 00000000 00000000 00000000[補碼]->0
例子:
-1>>2=?
-1補碼:11111111 11111111 11111111 11111111
-1>>2 11111111 11111111 11111111 11111111[補碼]
11111111 11111111 11111111 11111110[反碼]
10000000 00000000 00000000 00000001[原碼]->-1
1<<2=?
1補碼:00000000 00000000 00000000 00000001
1<<2 00000000 00000000 00000000 00000100[補碼]->4=1*2*2 每次移動一位,相當于乘以2
例子:
-1<<2=?
-1補碼:11111111 11111111 11111111 11111111
-1<<2 11111111 11111111 11111111 11111111[補碼]
11111111 11111111 11111111 11111110[反碼]
10000000 00000000 00000000 00000001[原碼]->-1
以上的運算,先轉為補碼進行運算,得到的結果為補碼,再轉為原碼
例子:13&7=?與
13的補碼:00000000 00000000 00000000 00001101
7的補碼: 00000000 00000000 00000000 00000111
13&7: 00000000 00000000 00000000 00000101[補碼]->5
例子:5|4=?或
5的補碼: 00000000 00000000 00000000 00000101
4的補碼: 00000000 00000000 00000000 00000100
5|4=: 00000000 00000000 00000000 00000101[補碼]->5
例子:-3^3=?異或
-3的原碼: 10000000 00000000 00000000 00000011
-3的反碼: 11111111 11111111 11111111 11111100
-3的補碼: 11111111 11111111 11111111 11111101
3的補碼: 00000000 00000000 00000000 00000011
-3^3=: 11111111 11111111 11111111 11111001[補碼]
11111111 11111111 11111111 11111000[反碼] 補碼-1
10000000 00000000 00000000 00000111[原碼]->-2
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。