美文网首页
(php)生成任意进制N个字符

(php)生成任意进制N个字符

作者: Fa1se003 | 来源:发表于2016-12-14 18:55 被阅读28次

今天正好在用php写项目,刚好最近在学汇编,就用php随便写个了生成任意进制N个字符(仅限单个字符),代码比较糙,还没来得急优化。回头用c++优化下再贴出来。

<?php

function createNext($str,$arr){
    
    $tmpStr = '';
    $isAdd = false;

    for($i = strlen($str)-1;$i>=0;$i--){

        $char = substr($str,$i,1);


        if($i===strlen($str)-1){
            foreach ($arr as $key => $value) {              
                if($value === $char){   
                    if($key+1 < count($arr)){
                        $tmpStr = $arr[$key+1].$tmpStr;                     
                    }else{
                        $tmpStr = $arr[0].$tmpStr;                  
                        $isAdd = true;
                    }               
                }
            }
        }else{
            if($isAdd){
                foreach ($arr as $key => $value) {              
                    if($value === $char){

                        if($key+1 < count($arr)){
                            $tmpStr = $arr[$key+1].$tmpStr;
                            $isAdd = false;
                        }else{
                            $tmpStr = $arr[0].$tmpStr;  
                            $isAdd = true;
                        }                   
                    }
                }
            }else{
                $tmpStr = $char.$tmpStr;
            }
        }   
    }

    if($isAdd){
        $tmpStr = $arr[1].$tmpStr;
    }
    return $tmpStr;
}

$arr      = ['0','1','2','3','4','5','6','7','8','9'];
$arr      = ['0','1','2','3','4','5'];
$arr      = ['a','b','c','d','e'];


$res      = createNext('abc',$arr);

$firstStr = $arr[0];
$total    = 155;
echo $firstStr ." ";

for ($i=0; $i < $total; $i++) {
    $res = createNext($firstStr,$arr);
    $firstStr = $res;
    echo $firstStr." ";
}

echo "\n";



?>

Paste_Image.png

相关文章

  • (php)生成任意进制N个字符

    今天正好在用php写项目,刚好最近在学汇编,就用php随便写个了生成任意进制N个字符(仅限单个字符),代码比较糙,...

  • 正则的写法

    .(点号):表示任意一个字符,除了\n,比如查找所有的一个字符 . []:匹配中括号中列举的任意字符 \d:任意一...

  • Base64/摘要算法/Cookie/session/token

    Base64 用64个字符表示任意二进制数的方法 原理:1个包含64个字符的数组、处理二进制数(38 = 46)、...

  • 07正则表达式

    在正则表达式中,用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符...

  • Mysql操作——DQL-3-模糊查询

    模糊查询 根据指定的关键词进行查询使用like关键字后跟通配符通配符_: 任意一个字符%:任意0~n个字符 使用 ...

  • python 进制转换

    如何表示二进制 任意进制之间的转换 任意进制转换成二进制--bin 任意进制转换成十进制--int 3.任意进制转...

  • 进制转换

    1.将任意进制字符串转换为十进制 2.将十进制转化为其他进制字符串 利用Object.toString(n) 参数...

  • 9.3 函数 :任意进制输出[递归]

    编写函数to_base_n(),输入任意十进制正整数和进制数,然后按照指定进制输出输入样例 输出样例 示例程序

  • 进制与数据宽度

    进制的本质是什么: 由N个符号组成,逢N进1,(符号可以任意定义,可能会对解密者造成很大困扰!) 记住二进制与十六...

  • Java笔记之正则表达式

    本笔记来自 计算机程序的思维逻辑 系列文章 语法 单个字符 特殊字符 \t \n \r 八进制 \0 十六进制 \...

网友评论

      本文标题:(php)生成任意进制N个字符

      本文链接:https://www.haomeiwen.com/subject/hlxwmttx.html