php将十六进制数273ef9转换为路径27/3e/f9

php将十六进制数273ef9转换为路径27/3e/f9,php,algorithm,Php,Algorithm,正如标题所示,在PHP中,将十六进制数(如273ef9转换为路径(如27/3e/f9)的有效方法是什么 更新:: 实际上,我想要一个非标准数字转换成dexadecimal,然后再转换成路径……但也许我们可以跳过中间的步骤。把stru分裂和内爆结合起来怎么样?可能效率不高,但可读性很强: 内爆('/',str_split(“273ef9”,2)) 作为旁注,这当然适用于较大的十六进制字符串,并且可以处理部分(长度为3,5,7)十六进制数(只需在最后一个斜杠后打印为单个字母) 编辑:按照您现在的要求

正如标题所示,在PHP中,将十六进制数(如
273ef9
转换为路径(如
27/3e/f9
)的有效方法是什么

更新::
实际上,我想要一个非标准数字转换成dexadecimal,然后再转换成路径……但也许我们可以跳过中间的步骤。

把stru分裂和内爆结合起来怎么样?可能效率不高,但可读性很强:

内爆('/',str_split(“273ef9”,2))

作为旁注,这当然适用于较大的十六进制字符串,并且可以处理部分(长度为3,5,7)十六进制数(只需在最后一个斜杠后打印为单个字母)

编辑:按照您现在的要求(十进制->十六进制->路径),它将如下所示:

$num = 2572025;
$hex = dechex($num);
implode('/',str_split($hex,2));
当然,您可以将其组合为更短但可读性更低的表示形式:
内爆('/',str_split(dechex($num),2))

将stru分裂与内爆相结合如何?可能效率不高,但可读性很强:

内爆('/',str_split(“273ef9”,2))

作为旁注,这当然适用于较大的十六进制字符串,并且可以处理部分(长度为3,5,7)十六进制数(只需在最后一个斜杠后打印为单个字母)

编辑:按照您现在的要求(十进制->十六进制->路径),它将如下所示:

$num = 2572025;
$hex = dechex($num);
implode('/',str_split($hex,2));
当然,您可以将其组合为更短但可读性更低的表示形式:
内爆('/',str_split(dechex($num),2))

最有效的方法是精确地触摸十六进制值中的每个字符一次,边走边构建字符串。因为该字符串可能有奇数或偶数个数字,所以您必须首先对此进行检查,如果它是奇数长度的字符串,则输出一个数字。然后使用for循环附加两位数的组,注意是否添加斜杠。这将是几行代码

除非此代码被执行数百万次,否则编写此算法可能不值得;迈克尔·彼得罗夫的书可读性很好。除非你真的需要优化,否则就这样做吧


顺便说一句,要从十进制数转换为十六进制字符串,只需使用
dechex
:)

最有效的方法是只需触摸十六进制值中的每个字符一次,即可构建字符串。因为该字符串可能有奇数或偶数个数字,所以您必须首先对此进行检查,如果它是奇数长度的字符串,则输出一个数字。然后使用for循环附加两位数的组,注意是否添加斜杠。这将是几行代码

除非此代码被执行数百万次,否则编写此算法可能不值得;迈克尔·彼得罗夫的书可读性很好。除非你真的需要优化,否则就这样做吧


顺便说一句,要从十进制数转换为十六进制字符串,只需使用
dechex
:)

是否总是有6个十六进制数字?转换为十六进制是完全不相关的,但请尝试@Michael,,,我正在使用该函数将数字转换为十六进制无需跳过中间步骤,因为根据定义,您希望转换为十六进制,然后再转换为路径。如果您想跳过它,您需要编写自己的十进制到十六进制转换器,内置的转换器效率更高(内部用C而不是PHP编写)。所以不用担心,只需使用str_split和inclode在dechex之后完成任务。总是有6个十六进制数字吗?转换为十六进制是完全不相关的,但是试试@Michael,,,我正在使用该函数将数字转换为十六进制,无需跳过中间步骤,因为根据定义,您希望转换为十六进制,然后转换为路径。如果您想跳过它,您需要编写自己的十进制到十六进制转换器,内置的转换器效率更高(内部用C而不是PHP编写)。所以不用担心,只要使用str_分裂和内爆来完成dechex之后的工作。看起来不错,如果没有更好的,我可以接受。我会接受这个。看起来不错,如果没有更好的,在我接受之前。我会接受这一点。确切地说,我喜欢这是多么优雅的陈述——需要数千到数百万次的代码执行才能有所作为。你可以写一些非常有效的东西来直接将十进制数转换成路径,但我怀疑即使这样也会很好-通常我选择可读性而不是极端效率,直到我能够分析并识别代码中的真正瓶颈。确切地说,我喜欢这样优雅的表述——需要数千到数百万次的代码执行才能有所作为。您可以编写一些非常有效的方法来直接将十进制数转换为路径,但我怀疑即使这样也不会有什么好处——通常我选择可读性而不是极端效率,直到我能够分析并识别代码中的真正瓶颈。