31. januar 2012 - 15:44
Der er
5 kommentarer og
1 løsning
konvertere decimal til hex
Hej Eksperter
Jeg kander dechex() hvor jeg kan konvertere et dicimal tal til hex.
Men er det muligt at konvertere til et format med mere end 16 forskellige cifre? eks 0-9+a-z eller evt 0-9+a-z+A-Z
Jeg skal lave noget der lugter lidt af short-url service og vil gerne holde short-url så kort som muligt...
31. januar 2012 - 22:43
#2
Som jeg læser det spm du referer til, er det bare en måde at kunne lave større tal til hex...
Det jeg vil have er ikke hex, men som decimal har 10 forskellige tal og hex har 16, så søger jeg et system der har f.eks. 35 (0-9 a-z)
01. februar 2012 - 00:37
#3
Forslag:
<?php
function anyradix($num, $radixstr) {
$radix = strlen($radixstr);
$tmp = $num;
$res = '';
while($tmp > 0) {
$dig = $tmp % $radix;
$tmp = (int)($tmp / $radix);
$res = $radixstr[$dig] . $res;
}
return $res;
}
echo anyradix(254, '01234567') . "\r\n";
echo anyradix(254, '0123456789') . "\r\n";
echo anyradix(254, '0123456789ABCDEF') . "\r\n";
echo anyradix(254, '0123456789abcdef') . "\r\n";
echo anyradix(254, '0123456789ABCDEFabcdef') . "\r\n";
echo anyradix(257, '01234567') . "\r\n";
echo anyradix(257, '0123456789') . "\r\n";
echo anyradix(257, '0123456789ABCDEF') . "\r\n";
echo anyradix(257, '0123456789abcdef') . "\r\n";
echo anyradix(257, '0123456789ABCDEFabcdef') . "\r\n";
?>