程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP和MySql中32位和64位的整形范圍是多少

PHP和MySql中32位和64位的整形范圍是多少

編輯:PHP綜合

一個字節有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

以上內容是小編給大家介紹的32位和64位的整形范圍,希望對大家有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved