當前位置:首頁 » 編程語言 » php32位

php32位

發布時間: 2025-01-30 17:28:48

『壹』 運行php需要32位vc11或者vc14的運行庫該怎麼解決

去微軟官方網站安裝這兩個運行庫:微軟官網 vc14https://www.microsoft.com/en-us/download/details.aspx?id=48145

『貳』 php怎樣生成一個32位的隨機字元串

如用戶注冊生成隨機密碼,用戶重置密碼也需要生成一個隨機的密碼。隨機密碼也就是一串固定長度的字元串。下面介紹生成隨機字元串的三種基本方法:

『叄』 PHP 如何在64位系統讓32位的整型左移溢出

可以在64bit系統上把補碼處理一下

×手上沒裝64bit的php所以用java的64bit的long模擬

publicclassTest{
publicstaticvoidmain(String[]args){
inta=83661<<15;
System.out.println("32bit:"+a);
longn=83661L<<15;
System.out.println("64bit:"+n);
if(n>0x7fffffffL){
n--;n=~n;n&=0x7fffffffL;n=-n;
}
System.out.println("64bit處理後:"+n);
}
}
32bit:-1553563648
64bit:2741403648
64bit處理後:-1553563648

如不想移植以上的,PHP還可以直接把數值pack()打包成32bit有符號,再按32bit有符號unpack()一次也能得到需要的負數,不過感覺這樣效率不如以上直接計算快..

『肆』 php 32位md5編碼兩次結果不一樣!

首先你需要了解md5加密的字元串只要有一個位不同,結果就是不同的

PHP中對字元串的表示有兩種形式

第一種是用單引號將字元串引起來,第二種是用雙引號皮棚將字元串慶神引起來

這兩種方式表達的字元串是不同的,單引號引起來的字元串就是字元串本身,而雙引號會對字元燃差則串中的轉義符號進行轉義

你可以試一下在PHP中輸出下面的例子:

echo"x61x62x63";//輸出abc
echo'x61x62x63';//直接輸出x61x62x63,不對內容進行轉義

傳值過來的是計算字元串x...的值,是不經過轉義的

第二個圖中直接用md5("")計算,雙引號的內容是需要經過轉義的

如果圖2中用$md51=md5('f8');就跟圖1是一個結果了

『伍』 關於php 位運算符的問題

這個涉及到系統底層,WEB開發中幾乎沒用到,知道下有這個東西就好了。底層的東西解釋總是簡單不了的。
變數在內存中的存放都是二進制數字。整數在32位系統上是佔用4位元組,一個位元組是8位,也就是32位,位運算就是位級的運算操作了。

$a << $b Shift left(左移) 將 $a 中的位向左移動 $b 次(每一次移動都表示「乘以 2」)。
假定變數 $a 的值是 3,$b 的值是 2。
那麼 $a 在內存中的存放的格式是:
00000000 00000000 00000000 00000011
每執行一次左移,都將所有的位向左移動,右邊補零,左邊超過的舍棄。
所以 $a 左移 2 得到的是:
00000000 00000000 00000000 00011000
也就是 12。相當於 3 × 2 × 2 = 12。

$a >> $b Shift right(右移) 將 $a 中的位向右移動 $b 次(每一次移動都表示「除以 2」)。
假定變數 $a 的值是 24,$b 的值是 2。
那麼 $a 在內存中的存放的格式是:
00000000 00000000 00000000 00011000
每執行一次右移,都將所有的位向由移動,右邊超過的舍棄,左邊空出的位補零。
所以 $a 右移 2 得到的是:
00000000 00000000 00000000 00000110
也就是 6。相當於 24 ÷ 2 ÷ 2 = 6。

位移運算是系統底層運算,運算的速度比乘除還要快很多,優化代碼優化到極致的時候,可以將數換算成二的公倍數,然後進行位移計算。但在WEB開發中幾乎沒有任何必要,而且超過系統底層了,程序在的可移植性就會降低。

其他的位運算符也是差不多的。比如:
$a & $b And(按位與) 將把 $a 和 $b 中都為 1 的位設為 1。
假定變數 $a 的值是 5,$b 的值是 6。
$a:
00000000 00000000 00000000 00000101
$b:
00000000 00000000 00000000 00000110
$a & $b :
00000000 00000000 00000000 00000101
00000000 00000000 00000000 00000110
───────────────────────────
00000000 00000000 00000000 00000100
豎的看,上下都是 1 的得到 1 ,否則就是 0。
所以 $a & $b = 4。

~ $a Not(按位非) 將 $a 中為 0 的位設為 1,反之亦然。
~ $a:
00000000 00000000 00000000 00000101
───────────────────────────
11111111 11111111 11111111 11111010
如果 $a 是有符號整數,第一位是符號位,1表示負數,那麼 ~ $a = -2147483642。
如果 $a 是無符號整數,第一位還是數據位,那麼 ~ $a = 4294967290。

以下的就不詳細介紹了:
$a | $b Or(按位或) 將把 $a 或者 $b 中為 1 的位設為 1。
$a ^ $b Xor(按位異或) 將把 $a 和 $b 中不同的位設為 1。

平常說的幾位的系統,就是系統處理整數的時候,是多少個位同時計算的,上面的例子都是基於32位系統。因為移動時超過的位將被舍棄,如果是64位或12位的,位移的結果就可能不一樣了,要將計算時位的數量調整下。

熱點內容
泰拉瑞亞國服安卓蘋果如何聯機 發布:2025-01-31 03:36:53 瀏覽:991
工控機linux 發布:2025-01-31 03:36:48 瀏覽:270
linux安裝壓縮包 發布:2025-01-31 03:35:02 瀏覽:489
linux如何刪除一個文件 發布:2025-01-31 03:33:27 瀏覽:489
進度查詢源碼 發布:2025-01-31 03:31:55 瀏覽:509
下載java路徑 發布:2025-01-31 03:30:09 瀏覽:361
java序列化工具 發布:2025-01-31 03:25:27 瀏覽:234
psv資料庫 發布:2025-01-31 03:19:36 瀏覽:860
sparkwindows下編譯 發布:2025-01-31 03:17:57 瀏覽:962
pid演算法缺點 發布:2025-01-31 03:16:14 瀏覽:551