Advertisement
voodooKobra

Taken from PHP.net

Sep 18th, 2012
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.07 KB | None | 0 0
  1. <?
  2. function convBase($numberInput, $fromBaseInput, $toBaseInput) {
  3.     // FROM PHP.NET         PHPCoder@niconet2k.com
  4.     if ($fromBaseInput==$toBaseInput) return $numberInput;
  5.     $fromBase = str_split($fromBaseInput,1);
  6.     $toBase = str_split($toBaseInput,1);
  7.     $number = str_split($numberInput,1);
  8.     $fromLen=strlen($fromBaseInput);
  9.     $toLen=strlen($toBaseInput);
  10.     $numberLen=strlen($numberInput);
  11.     $retval='';
  12.     if ($toBaseInput == '0123456789')
  13.     {
  14.         $retval=0;
  15.         for ($i = 1;$i <= $numberLen; $i++)
  16.             $retval = bcadd($retval, bcmul(array_search($number[$i-1], $fromBase),bcpow($fromLen,$numberLen-$i)));
  17.         return $retval;
  18.     }
  19.     if ($fromBaseInput != '0123456789')
  20.         $base10=convBase($numberInput, $fromBaseInput, '0123456789');
  21.     else
  22.         $base10 = $numberInput;
  23.     if ($base10<strlen($toBaseInput))
  24.         return $toBase[$base10];
  25.     while($base10 != '0')
  26.     {
  27.         $retval = $toBase[bcmod($base10,$toLen)].$retval;
  28.         $base10 = bcdiv($base10,$toLen,0);
  29.     }
  30.     return $retval;
  31. }
  32. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement