PHP位運算以及如何引用外部文件

位運算算法& ,|,  ^,  ~, >>,   <<

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 000000011  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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章