您好,登錄后才能下訂單哦!
本篇內容介紹了“PHP和MySql中32位跟64位的整形范圍是多少”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一個字節有8位,所以32位int型占用32位/8位=4個字節,64位int型占用64位/8位=8個字節.
32位,64位無符號整型最大值:
2^64-1 = 18446744073709551615
2^32-1 = 4294967295
32位,64位有符號整型最大值:
(2^32)/2-1 = 2147483647
(2^64)/2-1 = 9223372036854775807
減1是因為整型包括0.
64位Ubuntu 14.04,PHP_INT_MAX的值為9223372036854775807,跟MySQL中有符號的bigint型的最大值一樣.
32位Ubuntu 14.04,PHP_INT_MAX的值為2147483647,跟MySQL中有符號的int型的最大值一樣.
echo date('Y-m-d H:i:s', PHP_INT_MAX); 返回 2038-01-19 11:14:07
echo strtotime('2038-01-19 11:14:07'); 返回 2147483647
echo strtotime('2038-01-19 11:14:08'); 32位下返回空
也就是說,32位系統上PHP的time()最大只能返回2038-01-19 11:14:07的時間戳.
字段類型: `posted` int(10) unsigned NOT NULL DEFAULT '0'
32位MySQL上(64位MySQL也是如此),插入一個比32位無符號int型最大值 2^32-1 = 4294967295 更大的數會發生錯誤:
UPDATE `punbb`.`pb_topics` SET `posted` = '4294967296' WHERE `pb_topics`.`id` = 1;
Warning: #1264 Out of range value for column 'posted' at row 1
不過,MySQL可以用8個字節的bigint類型來存儲64位整數.
數據類型 | LP64 | ILP64 | LLP64 | ILP32 | LP32 |
char | 8 | 8 | 8 | 8 | 8 |
short | 16 | 16 | 16 | 16 | 16 |
_int32 | N/A | 32 | N/A | N/A | N/A |
int | 32 | 64 | 32 | 32 | 16 |
long | 64 | 64 | 32 | 32 | 32 |
long long | N/A | N/A | 64 | N/A | N/A |
pointer | 64 | 64 | 64 | 32 | 32 |
“PHP和MySql中32位跟64位的整形范圍是多少”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。