這篇文章給大家分享的內容是關於PHP中有關長整數的操作,有著一定的參考價值,有需要的朋友可以參考一下
##在PHP,數字型別只有int和float兩種,它們的位數取決於系統,而且沒有uint,所以跟其它系統通訊的時候就有諸多不便。如果int溢出,則自動轉換為float,用科學計數法來表示,並且小數點後只保留15位,之後的資料被四捨五入,這將對接下來的資料操作產生影響,例如說進位轉換,進行運算等等都會出錯。
對於PHP有:int :min~max: -9223372036854775808 ~ 9223372036854775807(#92億)
float : min~max: -1.7976931348623E 308 ~ 1.7976931348623E 308(~1.8E308)
這時候我們需要考慮用字串形式來進行相關處理,如果一定要進行數學計算,就要用到BC Math(任意精確度數學) Functions,在PHP手冊中可以自行查閱:http://php.net/manual/zh/function.bcmod.php
此處舉一個將長整數轉換為二進位的簡單例子,將2^128轉換為二進位:由於php的進位轉換函數也是有最大值限制的,所以在這裡採用短除法,來轉換為二進位,採用原始函數pow求冪次
#
# 其輸出結果如下,很明顯精確度不夠,且二進位是錯誤的
##正確表示:
## 輸出結果:
以上是PHP中有關長整數的操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!