PHP中有关长整数的一些操作教程


Posted in PHP onSeptember 11, 2019

前言

在PHP,数字类型只有int和float两种,它们的位数取决于系统,而且没有uint,所以跟其它系统通信的时候就有诸多不便。如果int溢出,则自动转换为float,用科学计数法来表示,并且小数点后只保留15位,之后的数据被四舍五入,这将对接下来的数据操作产生影响,比如说进制转换,进行运算等等都会出错。

对于PHP有:

int  : min~max: -9223372036854775808 ~ 9223372036854775807(~92亿亿)

float : min~max: -1.7976931348623E+308 ~ 1.7976931348623E+308(~1.8E308)

在这个时候我们就需要考虑用字符串形式来进行相关处理,如果一定要进行数学计算,就要用到BC Math(任意精度数学) Functions,在PHP手册中可以自行查阅:http://php.net/manual/zh/function.bcmod.php

此处举一个将长整数转化为二进制的简单例子,将2^128转化为二进制:由于php的进制转换函数也是有最大值限制的,所以在这里采用短除法,来转化为二进制,采用原始函数pow求幂次

PHP中有关长整数的一些操作教程

其输出结果如下,很显然精度不够,并且二进制是错误的

PHP中有关长整数的一些操作教程

正确表示:

PHP中有关长整数的一些操作教程  

输出结果:

PHP中有关长整数的一些操作教程

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
PHP 批量删除 sql语句
Jun 05 PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 PHP
php从数组中随机抽取一些元素的代码
Nov 05 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
Jul 25 PHP
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
在PHP程序中使用Rust扩展的方法
Jul 03 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
PHP生成随机字符串实例代码(字母+数字)
Sep 11 #PHP
Yii框架参数配置文件params用法实例分析
Sep 11 #PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 #PHP
Laravel框架验证码类用法实例分析
Sep 11 #PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
Sep 10 #PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 #PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 #PHP
You might like
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
JavaScript对象链式操作代码(jquery)
2010/07/04 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
微信小程序block的使用教程
2018/04/01 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
js html实现计算器功能
2018/11/13 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
Python实现对字符串的加密解密方法示例
2017/04/29 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
详解Python实现进度条的4种方式
2020/01/15 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
医学生自荐信范文
2015/03/05 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android