PHP自定义多进制的方法


Posted in PHP onNovember 03, 2016

如下所示:

/**
 * 自定义多进制,根据设置的多进制字符串获取十进制对应的多进制
 * @param $str 自定义的多进制字符串
 * @param $num 十进制数字
 * @return $xbin 对应的多进制数字
 */
function xbin($str, $num){
  $num = floatval($num);
  $x = strlen($str);
  $arr = str_split($str);
  $digit = fmod($num, $x);
  $xbin = isset($arr[$digit]) ? $arr[$digit] : null;
  $pre_digit = floor($num / $x);
  if($pre_digit >= 1){
    $pre_digit = xbin($str, $pre_digit);
    return $pre_digit.$xbin;
  }
  return $xbin;
}

// 测试8进制
$str = '01234567';
$a = xbin($str, 9);
$b = decoct(9);
dump($a); // string(2) "11"
dump($b); // string(2) "11"

// 测试16进制
$str = '0123456789abcdef';
$a = xbin($str, 31);
$b = dechex(31);
dump($a); // string(2) "1f"
dump($b); // string(2) "1f"

// 自定义30进制
$str = '0123456789abcdefghijklmnopqrst';
$a = xbin($str, 59);
dump($a); // string(2) "1t"

// 自定义92进制
$str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~!@#$%^&*()-=[];\',./{}:"<>?\|';
$a = xbin($str, 183);
dump($a); // string(2) "1|"

以上就是小编为大家带来的PHP自定义多进制的方法全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
模拟SQLSERVER的两个函数:dateadd(),datediff()
Oct 09 PHP
php 分页函数multi() discuz
Jun 21 PHP
PHP中的cookie不用刷新就生效的方法
Feb 04 PHP
解析PHP中常见的mongodb查询操作
Jun 20 PHP
使用PHP备份MYSQL数据的多种方法
Jan 15 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
Nov 18 PHP
php jsonp单引号转义
Nov 23 PHP
Opcache导致php-fpm崩溃nginx返回502
Mar 02 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 #PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 #PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
Nov 03 #PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 #PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 #PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 #PHP
php使用正则表达式去掉html中的注释方法
Nov 03 #PHP
You might like
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
vue router自动判断左右翻页转场动画效果
2017/10/10 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
浅析Python函数式编程
2018/10/06 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
家用个人磨皮机:Trophy Skin
2017/03/30 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
大学校园生活自我鉴定
2014/01/13 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
统计系教授推荐信
2014/02/28 职场文书
求职意向书
2014/04/01 职场文书
成绩单家长评语大全
2014/04/16 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
先进单位申报材料
2014/12/25 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
MySQL分区路径子分区再分区
2022/04/13 MySQL
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android