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

5年以前  |  阅读数:810 次  |  编程语言: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位的整形范围,希望对大家有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例