Php 将小数乘以26。我一直这样做直到得到一个整数。得到零是可以的,因为它是a,但如果它有小数,它必须相乘

Php 将小数乘以26。我一直这样做直到得到一个整数。得到零是可以的,因为它是a,但如果它有小数,它必须相乘,php,regex,math,cryptography,encryption,Php,Regex,Math,Cryptography,Encryption,对于10亿,这是DGEHTYM,显然是在6个循环中完成的。虽然我的答案演示了如何编码,但我担心这无助于在PHP上进行编码,而这正是我自己正在尝试的。不过,我希望该算法能帮助人们。strtr()是完成这项任务的绝佳工具!它在遍历字符串时替换最长的匹配 代码:() 输出: NIULGYART MDEFGHIJAMDEF KLMNOPQB CGZYXWVUT 只需翻转查找数组即可反转转换: 合并: 当然,我必须提到,将字母序列转换为数字再转换回字母时存在漏洞。考虑 bb变为 11 >代码>,当被

对于10亿,这是DGEHTYM,显然是在6个循环中完成的。虽然我的答案演示了如何编码,但我担心这无助于在PHP上进行编码,而这正是我自己正在尝试的。不过,我希望该算法能帮助人们。

strtr()
是完成这项任务的绝佳工具!它在遍历字符串时替换最长的匹配

代码:()

输出:

NIULGYART
MDEFGHIJAMDEF
KLMNOPQB
CGZYXWVUT

只需翻转查找数组即可反转转换:

合并:


当然,我必须提到,将字母序列转换为数字再转换回字母时存在漏洞。考虑<代码> bb<代码>变为<代码> 11 >代码>,当被再次转换时,错误为十一,将被转换为<代码> L>代码> < < /P> 有一些方法可以通过调整查找数组来缓解这种情况,但这可能不是必需的/有利的,具体取决于程序要求

下面是。

strtr()
是完成此任务的绝佳工具!它在遍历字符串时替换最长的匹配

代码:()

输出:

NIULGYART
MDEFGHIJAMDEF
KLMNOPQB
CGZYXWVUT

只需翻转查找数组即可反转转换:

合并:


当然,我必须提到,将字母序列转换为数字再转换回字母时存在漏洞。考虑<代码> bb<代码>变为<代码> 11 >代码>,当被再次转换时,错误为十一,将被转换为<代码> L>代码> < < /P> 有一些方法可以通过调整查找数组来缓解这种情况,但这可能不是必需的/有利的,具体取决于程序要求


以下是。

在转换之前,您考虑如何将数字存储为数字或字符串。($num=“138201162401719”或$num=138201162401719)您要查找的单词是“编码”。在转换之前,您考虑如何将数字存储为数字或字符串。($num=“138201162401719”或$num=138201162401719)您要查找的单词是“encoding”。
func convertBase26(num)
  if (num < 0) 
    return "-" & convertBase26(-num)  // '&' is concatenate.
  else if (num = 0)
    return "A"
  endif
  output = "";
  while (num > 0)
    output <- ('A' + num MOD 26) & output // Modulus operator.
    num <- num DIV 26  // Integer division.
  endwhile
  return output
endfunc
function toAlpha ($num) {
    return strtr($num, range("A", "Z"));
}
    
$string = toAlpha("138201162401719");
echo "$string\n";
$string = toAlpha("123456789012345");
echo "$string\n";
$string = toAlpha("101112131415161");
echo "$string\n";
$string = toAlpha("2625242322212019");
echo "$string";
NIULGYART
MDEFGHIJAMDEF
KLMNOPQB
CGZYXWVUT