文档章节

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

eechen
 eechen
发布于 2015/12/25 11:30
字数 313
阅读 767
收藏 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

粉丝 984
博文 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
golang基础--类型与变量

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

failymao
06/25
0
0
MongoDB中关于64位整型存储解决方案

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

5D同学
2013/04/12
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

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
3
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
3
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
1
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
3
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部