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获取本周,上周,本月,上月,本季度日期的代码
Aug 05 PHP
PHP 写文本日志实现代码
May 18 PHP
对text数据类型不支持代码页转换 从: 1252 到: 936
Apr 23 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
PHP字符串长度计算 - strlen()函数使用介绍
Oct 15 PHP
php比较两个绝对时间的大小
Jan 31 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
PHP 使用memcached简单示例分享
Mar 05 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 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 深入理解strtotime函数的使用详解
2013/05/23 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
PHP内核探索之变量
2015/12/22 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
Javascript学习笔记2 函数
2010/01/11 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
JS求平均值的小例子
2013/11/29 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
2017/01/19 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
JS实现吸顶特效
2020/01/08 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
[04:29]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/02/01 DOTA
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
python爬虫获取百度首页内容教学
2018/12/23 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
焊接专业毕业生求职信
2013/10/01 职场文书
求职信内容考虑哪几点
2013/10/05 职场文书
运动会广播稿20字
2014/02/18 职场文书
护理专业自荐信范文
2014/02/26 职场文书
工作分析计划书
2014/04/30 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
清洁员岗位职责
2015/02/15 职场文书
2015年酒店工作总结
2015/04/28 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书