php编程:将26位字母进制转换为10进制数字,如何做?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php编程:将26位字母进制转换为10进制数字,如何做?相关的知识,希望对你有一定的参考价值。

将26位字母进制转换为10进制数字,如何做?
比如把 asdfggghe 这个个26进制的数,如何转为10进制的数字

主要是加权法。
10进制结果=∑各位上的值*(进制数^各位权值)
a^b表示a的b次方。
比如你说的26进制
a->1
s->19
d->4
那么asd=1*(26^2)+19*(26^1)+4*(26^0)=1174(10进制)
如果是8进制数456=4*(8^2)+5*(8^2)+6*(8^0)=302(10进制)

分太少,不写源程序了,建立索引数组$arr[a]=1$,arr[b]=2..
再把输入的字母拆成单字符倒序数组使得$single[2]=a,$single[1]=s,$single[0]=d,按上面方法权值相加。
你懂的。
参考技术A <?php
$str="abcdefg";//写你想要算的字符串;
$v;
function getv($s)
$arr=str_split($s,1);
for ($i=0;$i<strlen($s);$i++)

$v=gett($arr[$i])*getw(strlen($s)-$i-1)+$v;

echo $v;

function getw($w)
$x=1;
for ($i=0;$i<$w;$i++)
$x=26*$x;

return $x;

function gett($ch)
return (ord($ch)-96);

echo getv($str);
?> 虽然不难,但是麻烦.这题没意思;
注:getv计算总结果; gett计算字母代表的数字; getw计算权值;本回答被提问者采纳
参考技术B <?php
$str="abcdefg";//写你想要算的
字符串
;
$v;
function
getv($s)
$arr=str_split($s,1);
for
($i=0;$i<strlen($s);$i++)

$v=gett($arr[$i])*getw(strlen($s)-$i-1)+$v;

echo
$v;

function
getw($w)
$x=1;
for
($i=0;$i<$w;$i++)
$x=26*$x;

return
$x;

function
gett($ch)
return
(ord($ch)-96);

echo
getv($str);
?>
虽然不难,但是麻烦.这题没意思;
注:getv计算总结果;
gett计算
字母
代表的数字;
getw计算
权值
;
参考技术C 26位字母进制?
它不是26进制,是不是要转换他们的ASCII码呢?

如果是16进制转10进制的话,使用函数 hexdex 就可以了。

以上是关于php编程:将26位字母进制转换为10进制数字,如何做?的主要内容,如果未能解决你的问题,请参考以下文章

十六进制转换为十进制

位运算————数字转换为十六进制

HDU 2100 LoveKey

26进制中的xfd转化为十进制为多少方法是?

怎么把数字转为二进制数

PHP如何将从二进制文件中读取的字节转换为数字