原文地址

起因

业务涉及了一组大整数的累加和,每个整数大约9位数,每组有几百个数字,担心数字溢出,所以了解下php int类型的范围。

测试

根据php官方文档,我的机器是64位,所以int范围应该是在(-263 -1 ) 到 (263 - 1)

整型数的字长和平台有关,尽管通常最大值是大约二十亿(32 位有符号)。64 位平台下的最大值通常是大约 9E18,除了 Windows 下 PHP 7 以前的版本,总是 32 位的。

所以我做了如下测试

$num = pow(2, 63) - 1;
var_dump($num); exit;

输出

double(9.2233720368548E+18)

奇怪,结果竟然是浮点数,这个明显是php解析器发现数据溢出后自动使用了double类型。
仔细思考原因如下:

263本身已经超过了int的表示范围,php将其解释为double,之后再如何运算的结果都是double

所以我修改了下代码

$nums = pow(2, 62) - 1 + pow(2, 62);
var_dump($num); exit;

输出

int(9223372036854775807)

到此,证实了php int类型最大值为263 - 1。

php int类型思索相关推荐

  1. python 把int类型转bytes以及把bytes 转int 类型(使用方法to_bytes ,from_byte, struct)

    把int类型转bytes 方法1 使用方法to_bytes to_bytes 方法里面有3个参数 , 第一个数是指定要转换的bytes占多少个字节 第二个是byteorder 是指定大端或者是小端 的 ...

  2. getchar返回int类型

    #include <stdio.h> /* copy input to output; 2nd version */ main() { int c; c = getchar(); whil ...

  3. mysql int和bigdecimal,mysql的 int 类型,刨析返回类型为BigDicemal 类型的奇怪现象

    用的是Map,List>接收, sql语句中int类型的值做了聚合运算, 满足上述两个条件. java中去取value的值就会变成BigDecimal 类型 经过实测:mybatis 中的sql ...

  4. mysql timestamp json_mysql中timestamp,datetime,int类型的区别与优劣

    mysql中timestamp,datetime,int类型的区别与优劣 int 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mys ...

  5. 实验五:任意输入10个int类型数据,排序输出,再找出素数

    一.实验代码如下: 1 /*本程序用来任意输入10个int类型数据,排序输出,再找出素数*/ 2 3 package jiangli; 4 5 import java.util.Scanner; 6 ...

  6. x86的cpu处理int类型并不是处理char高效多少

    很多文章上说int类型是最高效的类型,cpu处理这种类型要比其它类型快,比如要比处理char类型快,原因是什么,原因就是他们学过一本国人的教科书,教科书上就这么写的,所以人们就记住了,然而事实为何如此 ...

  7. JAVA里面的int类型 和Integer类型,有什么不一样

    JAVA里面的int类型 和Integer类型,有什么不一样 原创 2013年09月04日 23:15:11 标签: java / 2120 编辑 删除 JAVA里面的int类型 和Integer类型 ...

  8. request获取int类型的值_获取通话记录或通讯录的数量为负值

    安卓源码避坑指南5--获取通话记录或通讯录的数量为负值 通过蓝牙PBAP协议同步通讯录.通话记录时,想必对其数量大小也是很感兴趣的,因此一般的设计思路都是先获取到同步对象的总大小,然后再同步该对象的具 ...

  9. char 转为 int 类型

    一字符串,String="1234567": 把第i个数取出来时是char型的 如何把char型转换成int型? 先将char转为string类型,再转为int类型 public ...

最新文章

  1. 部署通用基础设施, 满足顶级 SLA 要求
  2. JqueryAjax异步加载在ASP.NET
  3. SQL Server 安装好后 Always On群组配置
  4. java object 引用类型_java中的四种引用类型
  5. Delphi控件开发浅入深出(三)
  6. servlet-api-2.5.jar - jar not loaded
  7. C++动态内存会被自动释放吗?
  8. 【ENVI解决经验】一处理图像就报错
  9. adb命令logcat抓取日志
  10. ibm服务器安装ghostxp系统,IBM ThinkPad X61s安装WIN XP系统
  11. 你理解大话西游片尾那句“他好像一条狗”吗?
  12. Cadence PSpice 仿真3: 电容器充放电瞬态仿真图文教程
  13. Codeforces Round #322 A Vasya the Hipster
  14. 前序、中序、后序表达式
  15. keyberos认证问题导致GSS initiate failed
  16. 《活出最乐观的自己》
  17. Simlink数字电路仿真教程(1)——常用电路仿真元器件介绍
  18. 本征向量、PCA和熵的基础教程
  19. 微信小程序开发者工具中版本管理的实现一(微信小程序tgit)
  20. 2022年TI杯模拟电⼦系统设计专题邀请赛——李萨如图形演示装置

热门文章

  1. 1910101811
  2. NHMicro业务脚本热部署快速开发框架介绍
  3. SQL Tuning Advisor使用实例
  4. 提升NAS网速技能get:网络聚合模式
  5. Spring Session 2.0.0.M1 发布,分布式解决方案
  6. 【百科】走近飞天:伏羲——资源调度服务
  7. html页面顶部提示在更高浏览器下面提示语
  8. 炫酷实用 7款jQuery/HTML5图片应用
  9. 提高个人执行力的途径
  10. javascript访问frame,iframe框架和href的定向