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 相关文章推荐
使用apache模块rewrite_module (转)
Feb 14 PHP
php将时间差转换为字符串提示
Sep 07 PHP
php中require和require_once的区别说明
Feb 27 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
PHP保存带BOM文件的方法
Feb 12 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
PHP实现递归无限级分类
Oct 22 PHP
PHP使用socket发送HTTP请求的方法
Feb 14 PHP
php+ajax登录跳转登录实现思路
Jul 31 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
PHP 柱状图实现代码
2009/12/04 PHP
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
javascript removeChild 使用注意事项
2009/04/11 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
js播放wav文件(源码)
2013/04/22 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
JavaScript中闭包的详解
2017/04/01 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
python实现教务管理系统
2018/03/12 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
python内打印变量之%和f的实例
2020/02/19 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
美国在线工具商店:Acme Tools
2018/06/26 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
个人职业生涯规划书1500字
2013/12/31 职场文书
机关单位人员学雷锋心得体会
2014/03/10 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
介绍信如何写
2015/01/31 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技