php语言

利用PHP自定义多进制

时间:2023-03-02 06:32:58 php语言 我要投稿
  • 相关推荐

利用PHP自定义多进制

  PHP自定义多进制的方法有哪些?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网!

  如下所示:

  ?

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  17

  18

  19

  20

  21

  22

  23

  24

  25

  26

  27

  28

  29

  30

  31

  32

  33

  34

  35

  36

  37

  38

  39

  40

  41

  42

  43

  /**

  * 自定义多进制,根据设置的多进制字符串获取十进制对应的多进制

  * @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如何自定义一个函数11-17

用php自定义函数之递归删除文件及目录11-17

PHP利用header跳转失效的解决方法04-13

如何利用PHP时间转换Unix时间戳代码11-17

PHP二维数组排序的3种方法和自定义函数分享11-25

php与php MySQL之间的关系03-30

php正则去掉php注释11-17

PHP试题03-28

利用php+mysql来做一个功能强大的在线计算器11-17

php的发展历程03-29