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 相关文章推荐
php trim 去除空字符的定义与语法介绍
May 31 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
ThinkPHP单字母函数(快捷方法)使用总结
Jul 23 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
PHP中static关键字以及与self关键字的区别
Jul 01 PHP
php通过smtp邮件验证登陆的方法
May 11 PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
PHP基于SPL实现的迭代器模式示例
Apr 22 PHP
PHP根据key删除数组中指定的元素
Feb 28 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 PHP
详解php中流行的rpc框架
May 29 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+DBM的同学录程序(3)
2006/10/09 PHP
php error_log 函数的使用
2009/04/13 PHP
PHP实现利用MySQL保存session的方法
2014/08/23 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
Bootstrap 模态框(Modal)插件代码解析
2016/12/21 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
Python多进程机制实例详解
2015/07/02 Python
python内存监控工具memory_profiler和guppy的用法详解
2019/07/29 Python
简单了解python变量的作用域
2019/07/30 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
业务主管岗位职责
2013/11/20 职场文书
自荐信格式
2013/12/01 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
校园之星获奖感言
2014/01/29 职场文书
开学典礼感言
2014/02/16 职场文书
小学生开学感言
2014/02/28 职场文书
会员活动策划方案
2014/08/19 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL