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 相关文章推荐
一个图形显示IP的PHP程序代码
Oct 19 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
Oct 22 PHP
php 冒泡排序 交换排序法
May 10 PHP
提升PHP性能的21种方法介绍
Jun 25 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
ThinkPHP的Widget扩展实例
Jun 19 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
PHP请求远程地址设置超时时间的解决方法
Oct 29 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 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
我的论坛源代码(六)
2006/10/09 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
修改php.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
jquery如何根据值设置默认的选中项
2014/03/17 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
2015/11/17 Javascript
angular2使用简单介绍
2016/03/01 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
vue-cli设置publicPath小记
2020/04/14 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
python主线程捕获子线程的方法
2018/06/17 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
numpy基础教程之np.linalg
2019/02/12 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
如何学习Python time模块
2020/06/03 Python
django中ImageField的使用详解
2020/12/21 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
2014年幼儿园元旦活动方案
2014/02/13 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
2019银行竞聘书
2019/06/21 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
sql注入教程之类型以及提交注入
2021/08/02 MySQL
用JS写一个发布订阅模式
2021/11/07 Javascript