文档章节

32位和64位PHP和MySQL里的整型范围

eechen
 eechen
发布于 2015/12/25 11:30
字数 313
阅读 787
收藏 1


一个字节有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位整数.

© 著作权归作者所有

共有 人打赏支持
eechen

eechen

粉丝 990
博文 107
码字总数 55962
作品 1
深圳
私信 提问
加载中

评论(3)

eechen
eechen

引用来自“AngusXer”的评论

PHP5.6下INT也不支持64吧。超过32位就变成float了。7.0才完全支持64位整数
Ubuntu上64位PHP5.4的PHP_INT_MAX的值为9223372036854775807,我补充上传了图片,见文章开头。
全体人员
全体人员
PHP5.6下INT也不支持64吧。超过32位就变成float了。7.0才完全支持64位整数
IP转换整形(ip2long)

如何将四个字段以点分开的IP网络址协议地址转换成整数呢?PHP里有这么一个函数ip2long.比如 <?php echo ip2long("10.2.1.3"); ?> 我们将得到 167903491 这是如何计算的,目前我知道有两个算法...

net ljx
2011/04/27
0
0
MongoDB中关于64位整型存储解决方案

社区内一哥们@smcboy 提出关于php中操作MongoDB存储整数问题,找到点资料花点时间翻译过来,是个很好的学习方式。@红薯 那篇讨论我的修改回复,仍然没有更新可恶啊~!!说实话我就是高一英语...

5D同学
2013/04/12
0
0
golang基础--类型与变量

基础知识--类型与变量 基本类型 布尔型:bool 长度: 1字节 取值范围: false, true 注意事项: 不可以使用数字代表,不像 python中可是使用 1和0表示 整型: int/uint 根据运行平台可能是32位...

failymao
06/25
0
0
mysql中bigint、int、mediumint、smallint 和 tinyint的取值范

mysql数据库设计,其中,对于数据性能优化,字段类型考虑很重要,搜集了些资料,整理分享出来,这篇为有关mysql整型bigint、int、mediumint、smallint 和 tinyint的语法介绍,如下: 1、big...

mdoo
2015/10/28
0
0
32位与64位系统基本数据类型的字节数

数据类型 说明 32位字节数 64位字节数 取值范围 bool 布尔型 1 1 true,false char 字符型 1 1 -128~127 unsigned char 无符号字符型 1 1 0~255 short 短整型 2 2 -32768~32767 unsigned sh...

为中国崛起而撸
2017/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
0
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
0
0
Mybatis 学习笔记四 MyBatis-Plus插件

Mybatis 学习笔记四 MyBatis-Plus插件 maven依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <ve......

晨猫
昨天
2
0
小白带你认识netty(二)之netty服务端启动(下)

承接上一篇小白带你认识netty(二)之netty服务端启动(上),还剩下两步骤:3、注册Selector:将Channel注册到Selector上 和 4、端口的绑定:服务端端口的监听。 3、注册Selector:将Chann...

天空小小
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部