设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 3396|回复: 7
收起左侧

[PHP/ASP/JSP] PHP 实现2~62进制转换功能

[复制链接]
发表于 2017-7-4 11:52:24 | 显示全部楼层 |阅读模式

  1. <?php
  2. function dec_to($n, $t = 62) {
  3.         if ($t == 10 || $t > 62 || $t < 2) {
  4.                 return $n;
  5.         }
  6.         $d = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  7.         $r = "";
  8.         do {
  9.                 $r = $d[bcmod($n, $t)] . $r;
  10.                 $n = bcdiv($n, $t);
  11.         } while ($n > 0);
  12.         return $r;
  13. }

  14. function dec_from($n, $f = 62) {
  15.         if ($f == 10 || $f > 62 || $f < 2) {
  16.                 return $n;
  17.         }
  18.         $n = strval($n);
  19.         $d = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  20.         $dec = 0;
  21.         $l = strlen($n);
  22.         for($i = 0; $i < $l; $i++){
  23.                 $p = strpos($d, $n[$i]);
  24.                 if ($p >= $f) {
  25.                         continue;
  26.                 }
  27.                 $dec = bcadd(bcmul(bcpow($f, $l - $i - 1), $p), $dec);
  28.         }
  29.         return $dec;
  30. }

  31. function radix($z, $t = 62, $f = 10) {
  32.         $z = dec_from($z, $f);
  33.         $z = dec_to($z, $t);
  34.         return $z;
  35. }


  36. $y="";
  37. for($x[0]=1;$x[0]>=0;$x[0]--){
  38.         for($x[1]=1;$x[1]>=0;$x[1]--){
  39.                 for($x[2]=1;$x[2]>=0;$x[2]--){
  40.                 for($x[3]=1;$x[3]>=0;$x[3]--){
  41.                 $y=$y.$x[0].$x[1].$x[2].$x[3];
  42.                 }}}}
  43. echo "PHP 实现2~62进制转换功能 <br>函数调用方法:radix("要转换的字符",目标进制,当前进制);<br>";
  44. echo "By:".radix($y,62,2)." 2017-07-04<br>";
  45. echo "https://www.".radix($y,16,2).".com/<br>";



  46. ?>


复制代码
发表于 2017-7-4 13:26:14 | 显示全部楼层
代码第49行是亮点
发表于 2017-7-4 13:45:38 | 显示全部楼层
小萌 发表于 2017-7-4 13:26
代码第49行是亮点
  1. function radix($z, $t = 62, $f = 10) {
复制代码
哪里有亮点了?调用自己声明的函数。没毛病啊。。。
发表于 2017-7-4 14:07:14 | 显示全部楼层
demon 发表于 2017-7-4 13:45
哪里有亮点了?调用自己声明的函数。没毛病啊。。。

终于知道了lz的用户名也不是什么单词,而是用这种方法来的。
发表于 2017-7-4 14:07:49 | 显示全部楼层
demon 发表于 2017-7-4 13:45
哪里有亮点了?调用自己声明的函数。没毛病啊。。。

终于知道了lz的用户名也不是什么单词,而是用这种方法来的。
发表于 2017-7-4 14:11:16 | 显示全部楼层
小萌 发表于 2017-7-4 14:07
终于知道了lz的用户名也不是什么单词,而是用这种方法来的。

懵。
发表于 2017-7-4 14:18:33 | 显示全部楼层
小萌 发表于 2017-7-4 14:07
终于知道了lz的用户名也不是什么单词,而是用这种方法来的。

噢。。我看错了,我看到第四十八行了,诶。
发表于 2017-9-18 13:05:19 来自手机 | 显示全部楼层
感谢楼楼分享
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-4-29 10:10 , Processed in 1.024059 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表