首頁 >後端開發 >php教程 >PHP中有關長整數的操作

PHP中有關長整數的操作

不言
不言原創
2018-04-13 10:55:551421瀏覽

這篇文章給大家分享的內容是關於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中有關PDO資料存取抽象層的操作###############################

以上是PHP中有關長整數的操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn